Messages in this thread | | | Date | Fri, 31 Jan 2014 09:17:25 -0800 (PST) | From | Hugh Dickins <> | Subject | Re: next bio iters break discard? |
| |
On Thu, 16 Jan 2014, Kent Overstreet wrote: > > Ok, I reread the code and figured it out - the analagous change also has to be > made in __blk_segment_map_sg(). I'll mail out a patch for this tomorrow after > I've stared at the code more and had less beer.
I'd been hoping for a patch to try, but now your changes have hit Linus's tree: so today we have discard broken there too, crashing as originally reported on the NULL struct page pointer in __blk_recalc_rq_segments()'s page_to_pfn(bv.bv_page).
How to reproduce it? I hope you'll find easier ways, but I get it with swapping to SSD (remember "swapon -d" to enable discard). I'm just doing what I've done for years, running a pair of make -j20 kbuilds to tmpfs in limited RAM (I use mem=700M with 1.5G of swap: but that would be far too little RAM for a general config of current tree), to get plenty of fairly chaotic swapping but good forward progress nonetheless (if the sizes are too small, then it'll just thrash abysmally or be OOM-killed).
But please do send me a patch and I'll give it a try - thanks.
Hugh
| |