<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/block, branch v2.6.20-rc6</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v2.6.20-rc6</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v2.6.20-rc6'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2007-01-23T19:01:17Z</updated>
<entry>
<title>[PATCH] elevator: move clearing of unplug flag earlier</title>
<updated>2007-01-23T19:01:17Z</updated>
<author>
<name>Linas Vepstas</name>
<email>linas@austin.ibm.com</email>
</author>
<published>2007-01-23T18:40:54Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=95543179f158b4891c5dc49004853ce081e8d794'/>
<id>urn:sha1:95543179f158b4891c5dc49004853ce081e8d794</id>
<content type='text'>
A flag was recently added to the elevator code to avoid
performing an unplug when reuests are being re-queued.
The goal of this flag was to avoid a deep recursion that
can occur when re-queueing requests after a SCSI device/host
reset.  See http://lkml.org/lkml/2006/5/17/254

However, that fix added the flag near the bottom of a case
statement, where an earlier break (in an if statement) could
transport one out of the case, without setting the flag.
This patch sets the flag earlier in the case statement.

I re-discovered the deep recursion recently during testing;
I was told that it was a known problem, and the fix to it was
in the kernel I was testing. Indeed it was ... but it didn't
fix the bug. With the patch below, I no longer see the bug.

Signed-off by: Linas Vepstas &lt;linas@austin.ibm.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@suse.de&gt;
Cc: Chris Wright &lt;chrisw@sous-sol.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] cfq-iosched: merging problem</title>
<updated>2007-01-02T17:46:16Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2007-01-02T17:32:11Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ec8acb6904fabb8e741f741ec99bb1c18f2b3dee'/>
<id>urn:sha1:ec8acb6904fabb8e741f741ec99bb1c18f2b3dee</id>
<content type='text'>
Two issues:

- The final return 1 should be a return 0, otherwise comparing cfqq is
  a noop.

- bio_sync() only checks the sync flag, while rq_is_sync() checks both
  for READ and sync. The latter is what we want. Expand the bio check
  to include reads, and relax the restriction to allow merging of async
  io into sync requests.

In the future we want to clean up the SYNC logic, right now it means
both sync request (such as READ and O_DIRECT WRITE) and unplug-on-issue.
Leave that for later.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] cfq-iosched: tighten allow merge criteria</title>
<updated>2006-12-22T22:13:08Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2006-12-22T08:38:53Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=719d34027e1a186e46a3952e8a24bf91ecc33837'/>
<id>urn:sha1:719d34027e1a186e46a3952e8a24bf91ecc33837</id>
<content type='text'>
The logic in cfq_allow_merge() wasn't clear enough - basically allow
merging for the same queues only.  Do a fast check for 'rq and bio both
sync/async' before doing the cfqq hash lookup.

This is verified to work with the fixed elv_try_merge() from commit
bb4067e34159648d394943d5e2a011f838bff22f.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] fix kernel-doc warnings in 2.6.20-rc1</title>
<updated>2006-12-22T16:55:47Z</updated>
<author>
<name>Randy Dunlap</name>
<email>randy.dunlap@oracle.com</email>
</author>
<published>2006-12-22T09:06:52Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=af9997e426f9ddfe7a84cb4cd3c7ff938fabd41a'/>
<id>urn:sha1:af9997e426f9ddfe7a84cb4cd3c7ff938fabd41a</id>
<content type='text'>
Fix kernel-doc warnings in 2.6.20-rc1.

Signed-off-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] elevator: fixup typo in merge logic</title>
<updated>2006-12-22T06:01:04Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2006-12-21T20:20:01Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=bb4067e34159648d394943d5e2a011f838bff22f'/>
<id>urn:sha1:bb4067e34159648d394943d5e2a011f838bff22f</id>
<content type='text'>
The recent io scheduler allow_merge commit left the block layer with
no merging, oops. This patch fixes that up.

That means the CFQ change needs to be verified again, it might not fix
the original bug now.  But that's a seperate thing, I'll double check
that tomorrow.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] cfq-iosched: don't allow sync merges across queues</title>
<updated>2006-12-20T10:04:12Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2006-12-20T10:04:12Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=da775265021b61d5eb81df155e36cb0810f6df53'/>
<id>urn:sha1:da775265021b61d5eb81df155e36cb0810f6df53</id>
<content type='text'>
Currently we allow any merge, even if the io originates from different
processes. This can cause really bad starvation and unfairness, if those
ios happen to be synchronous (reads or direct writes).

So add a allow_merge hook to the io scheduler ops, so an io scheduler can
help decide whether a bio/process combination may be merged with an
existing request.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] Fixup blk_rq_unmap_user() API</title>
<updated>2006-12-19T10:12:46Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2006-12-19T10:12:46Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=8e5cfc45e7527eb5c8a9a22d56a7b9227e7c0913'/>
<id>urn:sha1:8e5cfc45e7527eb5c8a9a22d56a7b9227e7c0913</id>
<content type='text'>
The blk_rq_unmap_user() API is not very nice. It expects the caller to
know that rq-&gt;bio has to be reset to the original bio, and it will
silently do nothing if that is not done. Instead make it explicit that
we need to pass in the first bio, by expecting a bio argument.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] __blk_rq_unmap_user() fails to return error</title>
<updated>2006-12-19T10:07:59Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2006-12-19T10:07:59Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=48785bb9fa39415d7553e234946442579dfcf591'/>
<id>urn:sha1:48785bb9fa39415d7553e234946442579dfcf591</id>
<content type='text'>
If the bio is user copied, the copy back could return -EFAULT. Make
sure we return any error seen during unmapping.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] __blk_rq_map_user() doesn't need to grab the queue_lock</title>
<updated>2006-12-19T07:34:17Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2006-12-19T07:34:17Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=9c9381f9425ab4d2f9f0458ae9525c18bc832f59'/>
<id>urn:sha1:9c9381f9425ab4d2f9f0458ae9525c18bc832f59</id>
<content type='text'>
It was for driver private back_merge_fn hooks, but they don't exist
anymore.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
<entry>
<title>[PATCH] Remove queue merging hooks</title>
<updated>2006-12-19T07:33:11Z</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2006-12-19T07:33:11Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=1aa4f24fe96938cabe7a1e9da8bc3bfbd1dfe3fa'/>
<id>urn:sha1:1aa4f24fe96938cabe7a1e9da8bc3bfbd1dfe3fa</id>
<content type='text'>
We have full flexibility of merging parameters now, so we can remove the
hooks that define back/front/request merge strategies. Nobody is using
them anymore.

Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
</entry>
</feed>
