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

Reply via email to