On Tue, Dec 22, 2015 at 10:52:37AM +0500, Artem S. Tashkinov wrote:
On 2015-12-22 10:38, Kent Overstreet wrote:
>On Tue, Dec 22, 2015 at 05:26:12AM +0000, Junichi Nomura wrote:
>>On 12/22/15 12:59, Kent Overstreet wrote:
>>> reproduced it with 32 bit pae:
>>>
>>>> 1. Exclude memory above 4G line with boot param "max_addr=4G".
>>>
>>> doesn't work - max_addr=1G doesn't work either
>>>
>>>> 2. Disable highmem with "highmem=0".
>>>
>>> works!
>>>
>>>> 3. Try booting 64bit kernel.
>>>
>>> works
>>
>>blk_queue_bio() does split then bounce, which makes the segment
>>counting based on pages before bouncing and could go wrong.
>>
>>What do you think of a patch like this?
>
>Artem, can you give this patch a try?
This patch ostensibly fixes the issue - at least I cannot immediately
reproduce it. You can count me in as "Tested-by: Artem S. Tashkinov"
Let's all contemplate the fact that blk_segment_map_sg() _overrunning the end of
the provided sglist_ was this much of a clusterfuck to debug.