Messages in this thread |  | | Date | Mon, 21 Dec 2015 08:36:50 +0500 | From | "Artem S. Tashkinov" <> | Subject | Re: IO errors after "block: remove bio get nr vec s()" |
| |
On 2015-12-21 08:21, Ming Lei wrote: > On Mon, Dec 21, 2015 at 10:25 AM, Artem S. Tashkinov wrote: >> # cat >> /sys/block/sda/queue/{max_hw_sectors_kb,max_sectors_kb,max_segments,max_segment_size} >> 32767 >> 32767 >> 168 >> 65536 > > Looks it is fine, then maybe it is related with > BIOVEC_PHYS_MERGEABLE(), > BIOVEC_SEG_BOUNDARY() or sort of thing, because dma_addr_t and > phys_addr_t turn to 64-bit with PAE, but 'unsigned long' and 'void *' > is still 32bit. > > It was confirmed that there isn't the issue if PAE is disabled. > > Dumping both sata/ahci hw sg table and bio's bvec might be helpful.
Um, sorry, what exact variables/files do you want to see? I'm not an expert in /sys.
> > On Mon, Dec 21, 2015 at 10:32 AM, Kent Overstreet wrote: >> >> oy vey. WTF's been happening in blk-merge.c? >> >> Theyy're not the same bug. The bug in your thread was introduced by >> Jens in >> 5014c311ba "block: fix bogus compiler warnings in blk-merge.c", where >> he screwed >> up the bvprv handling - but that patch comes after the patch Artem >> bisected to. >> >> blk_bio_segment_split() looks correct in b54ffb73ca. > > Yes, that is why reverting 578270bfb(block: fix segment split) can make > the > issue disappear, because 5014c311ba "block: fix bogus compiler > warnings in blk-merge.c" basically disables sg-merge and prevents the > issue from being > triggered.
|  |