Hello, Richard Braun, on mar. 03 oct. 2017 10:54:12 +0200, wrote: > On Tue, Oct 03, 2017 at 12:14:39AM +0200, Samuel Thibault wrote: > > Jens Arm, on lun. 02 oct. 2017 19:20:57 +0200, wrote: > > > Here is the trace to the error in the attached PNG. > > > Is is reproduced with the mini.iso from Samuel. > > > The trace shown after I type "trace" is the same as shown automatically. > > > > Ok, it looks like traces I have already seen in our buildd VMs. It > > means the IDE driver is trying to push data to disk some memory which > > doesn't exist any more. I was wondering whether perhaps it's just that > > the IDE layer misses putting some reference to make sure that the memory > > doesn't get swapped out while being written to disk. > > > > Richard, does that ring a bell? > > It's possible. I didn't work much on the IDE driver because it already > did what was required for highmem support, but I may have been wrong. > The code in linux/dev/glue/block.c:device_write uses vm_map_enter with > a NULL object, which normally prevents paging,
That said, in block.c's rdwr_full, one can read bh->b_data = (char *) phystokv(pmap_extract (vm_map_pmap (device_io_map), (((vm_offset_t) *buf) + (nb << bshift)))); AIUI that can't work if the pages are in highmem, thus the issue (actually unrelated to eviction). I'll have a look at using a bounce buffer there. Samuel