<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/ata/libahci.c, branch linux-4.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-06-06T15:21:02Z</updated>
<entry>
<title>libata: Add helper to determine when PHY events should be ignored</title>
<updated>2015-06-06T15:21:02Z</updated>
<author>
<name>Gabriele Mazzotta</name>
</author>
<published>2015-04-25T17:52:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=38f91fb497fd20402061a2d9eece5053f8586cea'/>
<id>urn:sha1:38f91fb497fd20402061a2d9eece5053f8586cea</id>
<content type='text'>
commit 8393b811f38acdf7fd8da2028708edad3e68ce1f upstream.

This is a preparation commit that will allow to add other criteria
according to which PHY events should be dropped.

Signed-off-by: Gabriele Mazzotta &lt;gabriele.mzt@gmail.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ahci: Use dev_info() to inform about the lack of Device Sleep support</title>
<updated>2015-01-09T22:04:12Z</updated>
<author>
<name>Gabriele Mazzotta</name>
</author>
<published>2015-01-08T18:41:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=95bbbe9a6663635b6cdef20c01c0ea32ec6987e4'/>
<id>urn:sha1:95bbbe9a6663635b6cdef20c01c0ea32ec6987e4</id>
<content type='text'>
According to the Serial ATA AHCI specification, Device Sleep is an
optional feature and as such no errors should be printed if it's
missing. Keep informing users, but use dev_info() instead of dev_err().

Signed-off-by: Gabriele Mazzotta &lt;gabriele.mzt@gmail.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
</content>
</entry>
<entry>
<title>Revert "AHCI: Optimize single IRQ interrupt processing"</title>
<updated>2014-10-27T16:02:05Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2014-10-27T13:50:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7865f83fd2f23cbf3cd8ad0ddc2cef796f005aaf'/>
<id>urn:sha1:7865f83fd2f23cbf3cd8ad0ddc2cef796f005aaf</id>
<content type='text'>
This reverts commit 18dcf433f3ded61eb140a55e7048ec2fef79e723.
IRQF_ONESHOT was missing from the conversion causing screaming
interrupts problems on some setups and LKP detected measureable drop
in IO performance.  It looks like we'll first need to drop the
threaded IRQ handling first before splitting locking.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Reported-by: kernel test robot &lt;fengguang.wu@intel.com&gt;
Reported-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Link: http://lkml.kernel.org/g/20141027021651.GF27038@yliu-dev.sh.intel.com
Link: http://lkml.kernel.org/g/1414082970-20775-1-git-send-email-marc.zyngier@arm.com
</content>
</entry>
<entry>
<title>Revert "AHCI: Do not acquire ata_host::lock from single IRQ handler"</title>
<updated>2014-10-27T16:00:01Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2014-10-27T16:00:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=03e83cbd34a4602bf0d750e5ff4bf8b7d0e066b2'/>
<id>urn:sha1:03e83cbd34a4602bf0d750e5ff4bf8b7d0e066b2</id>
<content type='text'>
This reverts commit 33fb0d01ce60fe4c0c12c4f0c134c5cdb818ac5a.

18dcf433f3de ("AHCI: Optimize single IRQ interrupt processing") is
scheduled to be reverted.  This is an optimization dependent on the
mentioned commit.  Revert it first.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
</content>
</entry>
<entry>
<title>AHCI: Do not acquire ata_host::lock from single IRQ handler</title>
<updated>2014-10-06T15:43:36Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2014-10-06T15:26:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=33fb0d01ce60fe4c0c12c4f0c134c5cdb818ac5a'/>
<id>urn:sha1:33fb0d01ce60fe4c0c12c4f0c134c5cdb818ac5a</id>
<content type='text'>
There is no need to acquire ata_host::lock spinlock from
hardware context single IRQ interrupt handler since the
handler does not access host data that could be altered
by concurrent processors.

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: linux-ide@vger.kernel.org
</content>
</entry>
<entry>
<title>AHCI: Optimize single IRQ interrupt processing</title>
<updated>2014-10-06T15:43:36Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2014-10-06T15:24:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18dcf433f3ded61eb140a55e7048ec2fef79e723'/>
<id>urn:sha1:18dcf433f3ded61eb140a55e7048ec2fef79e723</id>
<content type='text'>
Split interrupt service routine into hardware context handler
and threaded context handler. That allows to protect ports with
individual locks rather than with a single host-wide lock and
move port interrupts handling out of the hardware interrupt
context.

Testing was done by transferring 8GB on two hard drives in
parallel using command 'dd if=/dev/sd{a,b} of=/dev/null'. With
lock_stat statistics I measured access times to ata_host::lock
spinlock (since interrupt handler code is fully embraced with
this lock). The average lock's holdtime decreased eight times
while average waittime decreased two times.

Both before and after the change the transfer time is the same,
while 'perf record -e cycles:k ...' shows 1%-4% CPU time spent
in ahci_single_irq_intr() routine before the update and not even
sampled/shown ahci_single_irq_intr() after the update.

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: linux-ide@vger.kernel.org
</content>
</entry>
<entry>
<title>AHCI: Do not read HOST_IRQ_STAT reg in multi-MSI mode</title>
<updated>2014-10-06T15:43:36Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2014-09-29T16:26:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=227dfb4dbf109596d76a9b842856c4ff68e4efb2'/>
<id>urn:sha1:227dfb4dbf109596d76a9b842856c4ff68e4efb2</id>
<content type='text'>
As described in AHCI v1.0 specification chapter 10.6.2.2
"Multiple MSI Based Messages" generation of interrupts
is not controlled through the HOST_IRQ_STAT register.

Considering MMIO access is expensive remove unnecessary
reading and writing of HOST_IRQ_STAT register.

Further, serializing access to the host data is no longer
needed and the interrupt service routine can avoid competing
on the host lock.

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Suggested-by: "Jiang, Dave" &lt;dave.jiang@intel.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: "Jiang, Dave" &lt;dave.jiang@intel.com&gt;
Cc: linux-ide@vger.kernel.org
</content>
</entry>
<entry>
<title>AHCI: Make few function names more descriptive</title>
<updated>2014-10-06T15:43:35Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2014-09-29T16:26:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5ee1cfd975518bc9cdcd79e0b76552b5ae5c8c1e'/>
<id>urn:sha1:5ee1cfd975518bc9cdcd79e0b76552b5ae5c8c1e</id>
<content type='text'>
Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: linux-ide@vger.kernel.org
</content>
</entry>
<entry>
<title>AHCI: Move host activation code into ahci_host_activate()</title>
<updated>2014-10-06T15:43:35Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2014-09-29T16:25:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d1028e2f95b75acab4f1046acae1b1ca7d7b2577'/>
<id>urn:sha1:d1028e2f95b75acab4f1046acae1b1ca7d7b2577</id>
<content type='text'>
Currently host activation done by calling either function
ahci_host_activate() or ata_host_activate(). Consolidate
the code by only calling ahci_host_activate() for all AHCI
devices.

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: linux-ide@vger.kernel.org
</content>
</entry>
<entry>
<title>AHCI: Move ahci_host_activate() function to libahci.c</title>
<updated>2014-10-06T15:43:34Z</updated>
<author>
<name>Alexander Gordeev</name>
</author>
<published>2014-09-29T16:25:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1c62854f5f7321b3ee8c08d34d7c1e615608566d'/>
<id>urn:sha1:1c62854f5f7321b3ee8c08d34d7c1e615608566d</id>
<content type='text'>
This update is a prerequisite for consolidation of
AHCI host activation code within ahci_host_activate()
function.

Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: linux-ide@vger.kernel.org
</content>
</entry>
</feed>
