[dm-devel] dm-bufio

Kasatkin, Dmitry dmitry.kasatkin at intel.com
Fri Mar 23 14:29:18 UTC 2012


On Fri, Mar 23, 2012 at 4:21 PM, Mike Snitzer <snitzer at redhat.com> wrote:
> On Fri, Mar 23 2012 at 10:12am -0400,
> Kasatkin, Dmitry <dmitry.kasatkin at intel.com> wrote:
>
>> On Fri, Mar 23, 2012 at 1:26 PM, Kasatkin, Dmitry
>> <dmitry.kasatkin at intel.com> wrote:
>> > On Fri, Mar 23, 2012 at 1:10 PM, Zdenek Kabelac <zkabelac at redhat.com> wrote:
>> >> Dne 23.3.2012 12:01, Kasatkin, Dmitry napsal(a):
>> >>> Hello,
>> >>>
>> >>> When using dm-bufio and dm-io in general, how to ensure that all dirty
>> >>> buffers are written to the storage when machine reboots?
>> >>> suspend hooks could be used, but they are not called on reboot, only
>> >>> when suspending/removing the target...
>> >>>
>> >>
>> >> You mean you reboot without running  'sync' command?
>> >>
>> >> And yes - on reboot you should properly unmount devices - so you should
>> >> see removal of target on your shutdown sequence -  I believe Fedora currently
>> >> tries to support switch to some shutdown ramdisk, so all filesystem and
>> >> devices might be properly unmounted and destroyed.
>> >>
>> >
>> > Hello,
>> >
>> > Thanks for response.
>> > I use bufio to store some data on block device.
>> > It is not mounted in anyway. My target just use it to load/store data.
>> > When machine reboots, I want to be sure that bufio written all dirty buffers...
>> >
>> > - Dmitry
>> >
>>
>> At the moment, I have reboot notifier which does the following
>>
>>       dm_bufio_write_dirty_buffers(d->bufio);
>>       sync_blockdev(d->dev->bdev);
>>       blkdev_issue_flush(d->dev->bdev, GFP_KERNEL, NULL);
>>
>> without first line on the next boot I got corrupted/not updated blocks.
>> and I am not sure if I need last 2 lines...
>
> Are you cleanly removing the target from the kernel before reboot
> (e.g. dmsetup remove devname)?
>
> As long as your target's .dtr is making sure to flush all outstanding IO
> (like your reboot notifier does) you should be fine.
>

The target contains rootfs... On reboot, it is remounted read-only.
I cannot remove it...

Sometime ago I had "message" operation "sync", to sync backing devices.
But reboot notifier looks nice... It is automatically called.

> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel




More information about the dm-devel mailing list