[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 6 Jun 2016 12:36:22 -0700
From: Dan Williams <dan.j.williams@...el.com>
To: Linda Knippers <linda.knippers@....com>
Cc: "linux-nvdimm@...ts.01.org" <linux-nvdimm@...ts.01.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
david <david@...morbit.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Christoph Hellwig <hch@....de>
Subject: Re: [PATCH 01/13] driver core, libnvdimm: disable manual unbind of
dimms while region active
On Mon, Jun 6, 2016 at 12:31 PM, Dan Williams <dan.j.williams@...el.com> wrote:
> On Mon, Jun 6, 2016 at 12:25 PM, Linda Knippers <linda.knippers@....com> wrote:
>> On 6/4/2016 4:52 PM, Dan Williams wrote:
>>> There are scenarios where we need a middle ground between disabling all
>>> manual bind/unbind attempts (via driver->suppress_bind_attrs) and
>>> allowing unbind at any userspace-determined time. Pinning modules takes
>>> away one vector for unwanted out-of-sequence device_release_driver()
>>> invocations, this new mechanism (via device->suppress_unbind_attr) takes
>>> away another.
>>>
>>> The first user of this mechanism is the libnvdimm sub-system where
>>> manual dimm disabling should be prevented while the dimm is active in
>>> any region. Note that there is a 1:N dimm-to-region relationship which
>>> is why this is implemented as a disable count rather than a flag. This
>>> forces userspace to disable regions before dimms when manually shutting
>>> down a bus topology.
>>
>> How is this related to deprecating pcommit?
>
> We need guarantees that the flush hint mappings are valid for the
> duration of a pmem namespace being enabled. I am going to move the
> mapping of the flush hint region from per-dimm to per-region. However
> since multiple regions may reference the same dimm the mapping needs
> to be reference counted and shared across regions. This will be
> similar to the arrangement we have for BLK-regions that share a
> control region mapping.
The usage of the word "region" is multiplexed too many times above.
per-region => per PMEM-region-device / BLK-region-device
flush hint region => per-dimm flush hint address range
control region => address range where block window mmio control registers reside
Powered by blists - more mailing lists