[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [patch 0/6] xenblk: Add O_DIRECT and O_SYNC support.

> You don't need a bio_set if you are not queuing beneath someone else.
> But you do need to take care not to call bio_alloc() again without
> having submitted the previous allocation, that is a violation of the bio
> mempool and can lead to deadlocks. I think the batching you do looks
> pointless (again, only looking at the patch), you should submit each bio
> as soon as it is built instead of stashing it in an array for later
> submission. That also gets rid of your bio mempool violation.
> > > Does blkback propagate unplug events downwards?
> > 
> > Not sure what that means. blkback does its own limited queue plugging to try
> > to develop usefully schedulable batches of I/O. There's no concept of
> > plugging across the blkfront/blkback interface.
> So once you leave your queuing loop, you unplug the below device? Or
> just point me at the source...

>From source code when got all requests from ring buffer, it have have
unpluged request_queue, when unplug_fn() called, maybe some requests
in request_queue waiting for commit to device.

I have suspected the data lost for device's cache, but when set the
bio rw to WRITE_SYNC, data could almost sync to disk at once.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.