lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4C30833E5CDF444D84D942543DF65BDA5804A4CF@G4W3303.americas.hpqcorp.net>
Date:	Thu, 5 Sep 2013 21:02:04 +0000
From:	"Zuckerman, Boris" <borisz@...com>
To:	"Gittins, Rob" <rob.gittins@...el.com>,
	Jeff Moyer <jmoyer@...hat.com>,
	Matthew Wilcox <willy@...ux.intel.com>
CC:	"linux-pmfs@...ts.infradead.org" <linux-pmfs@...ts.infradead.org>,
	"rob.gittins@...ux.intel.com" <rob.gittins@...ux.intel.com>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: RFC Block Layer Extensions to Support NV-DIMMs

Thanks!

I understand that...

However, unless transactional services are constructed lot of performance would be lost due to excessive commits of journals. This is specific for PM....

Regards, Boris 


> -----Original Message-----
> From: Gittins, Rob [mailto:rob.gittins@...el.com]
> Sent: Thursday, September 05, 2013 4:44 PM
> To: Zuckerman, Boris; Jeff Moyer; Matthew Wilcox
> Cc: linux-pmfs@...ts.infradead.org; rob.gittins@...ux.intel.com; linux-
> kernel@...r.kernel.org
> Subject: Re: RFC Block Layer Extensions to Support NV-DIMMs
> 
> 
> Hi Boris,
> 
> The purpose of commitpmem is to notify the hardware that data is ready to be made
> persistent.  This would mean flush any internal buffers and do whatever is needed in
> the hardware to ensure durable data.
> 
> I was trying to keep the API simple to allow the application to build it's own
> transaction mechanisms that would fit the specific app needs.
> 
> commitpmem is a device driver op since it may be very from one hardware and media
> technology to another.  Perhaps the name could be clearer.
> 
> Rob
> 
> 
> 
> 
> On 9/5/13 1:46 PM, "Zuckerman, Boris" <borisz@...com> wrote:
> 
> >Hi,
> >
> >It's a great topic! I am glad to see this conversation happening...
> >
> >Let me try to open another can of worms...
> >
> >Persistent memory updates are more like DB transactions and less like
> >flushing IO ranges.
> >
> >If someone offers commitpmem() functionality, someone has to assure
> >that all updates before that call can be discarded on failure or on request.
> >Also, the scope of updates may not be easily describable by a single
> >range.
> >
> >Forcing users to solve that (especially failure atomicity) on their own
> >by journaling, logging or other mechanism is optimistic and that cannot
> >be done efficiently.
> >
> >So, where should we expect to have this functionality implemented? FS
> >drivers, block drivers, controllers?
> >
> >Regards, Boris
> >
> >> -----Original Message-----
> >> From: Linux-pmfs [mailto:linux-pmfs-bounces@...ts.infradead.org] On
> >>Behalf Of Jeff  Moyer
> >> Sent: Thursday, September 05, 2013 1:16 PM
> >> To: Matthew Wilcox
> >> Cc: linux-pmfs@...ts.infradead.org; rob.gittins@...ux.intel.com;
> >>linux-  fsdevel@...er.org; linux-kernel@...r.kernel.org
> >> Subject: Re: RFC Block Layer Extensions to Support NV-DIMMs
> >>
> >> Matthew Wilcox <willy@...ux.intel.com> writes:
> >>
> >> > On Thu, Sep 05, 2013 at 08:12:05AM -0400, Jeff Moyer wrote:
> >> >> If the memory is available to be mapped into the address space of
> >> >> the kernel or a user process, then I don't see why we should have
> >> >> a block device at all.  I think it would make more sense to have a
> >> >> different driver class for these persistent memory devices.
> >> >
> >> > We already have at least two block devices in the tree that provide
> >> > this kind of functionality (arch/powerpc/sysdev/axonram.c and
> >> > drivers/s390/block/dcssblk.c).  Looking at how they're written, it
> >> > seems like implementing either of them as a block device on top of
> >> > a character device that extended their functionality in the
> >> > direction we want would be a pretty major bloating factor for no
> >> > real benefit (not even a particularly cleaner architecture).
> >>
> >> Fun examples to read, thanks for the pointers.  I'll note that
> >>neither required  extensions to the block device operations.  ;-)  I
> >>do agree with you that neither would  benefit from changing.
> >>
> >> There are a couple of things in this proposal that cause me grief,
> >>centered around the  commitpmem call:
> >>
> >> >>    void (*commitpmem)(struct block_device *bdev, void *addr);
> >>
> >> For block devices, when you want to flush something out, you submit a
> >>bio with  REQ_FLUSH set.  Or, you could have submitted one or more
> >>I/Os with REQ_FUA.
> >> Here, you want to add another method to accomplish the same thing,
> >>but outside of  the data path.  So, who would the caller of this
> >>commitpmem function be?  Let's  assume that we have a file system
> >>layered on top of this block device.
> >>Will the file
> >> system need to call commitpmem in addition to sending down the
> >>appropriate flags  with the I/Os?
> >>
> >> This brings me to the other thing.  If the caller of commitpmem is a
> >>persistent  memory-aware file system, then it seems awkward to call
> >>into a block driver at all.
> >> You are basically turning the block device into a sort of hybrid
> >>thing, where you can  access stuff behind it in myriad ways.  That's
> >>the part that doesn't make sense to  me.
> >>
> >> So, that's why I suggested that maybe pmem is different from a block
> >>device, but a  block device could certainly be layered on top of it.
> >>
> >> Hopefully that clears up my concerns with the approach.
> >>
> >> Cheers,
> >> Jeff
> >>
> >> _______________________________________________
> >> Linux-pmfs mailing list
> >> Linux-pmfs@...ts.infradead.org
> >> http://lists.infradead.org/mailman/listinfo/linux-pmfs
> >
> >_______________________________________________
> >Linux-pmfs mailing list
> >Linux-pmfs@...ts.infradead.org
> >http://lists.infradead.org/mailman/listinfo/linux-pmfs

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ