Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1206913
| From | Dan Williams <dan.j.williams@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v5 4/5] dax: fix mapping lifetime handling, convert to __pfn_t + kmap_atomic_pfn_t() |
| Date | 2015-08-13 17:30 +0200 |
| Message-ID | <pX2C6-7ft-19@gated-at.bofh.it> (permalink) |
| References | <pWR3X-7zZ-1@gated-at.bofh.it> <pWR3Y-7zZ-3@gated-at.bofh.it> <pWUbv-3xi-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Wed, Aug 12, 2015 at 11:26 PM, Boaz Harrosh <boaz@plexistor.com> wrote: > Boooo. Here this all set is a joke. The all "pmem disable vs still-in-use" argument is mute > here below you have inserted a live, used for ever, pfn into a process vm without holding > a map. Careful, don't confuse "unbind" with "unplug". "Unbind" invalidates the driver's mapping (ioremap) while "unplug" would invalidate the pfn. DAX is indeed broken with respect to unplug and we'll need to go solve that separately. I expect "unplug" support will be needed for hot provisioning pmem to/from virtual machines. > The all "pmem disable vs still-in-use" is a joke. The FS loaded has a reference on the bdev > and the filehadle has a reference on the FS. So what is exactly this "pmem disable" you are > talking about? Hmm, that's not the same block layer I've been working with for the past several years: $ mount /dev/pmem0 /mnt $ echo namespace0.0 > ../drivers/nd_pmem/unbind # succeeds Unbind always proceeds unconditionally. See the recent kernel summit topic discussion around devm vs unbind [1]. While kmap_atomic_pfn_t() does not implement revoke semantics it at least forces re-validation and time bounded references. For the unplug case we'll need to go shootdown those DAX mappings in userspace so that they return SIGBUS on access, or something along those lines. [1]: http://www.spinics.net/lists/kernel/msg2032864.html > And for god sake. I have a bdev I call bdev_direct_access(sector), the bdev calculated the > exact address for me (base + sector). Now I get back this __pfn_t and I need to call > kmap_atomic_pfn_t() which does a loop to search for my range and again base+offset ? > > This all model is broken, sorry? I think you are confused about the lifetime of the userspace DAX mapping vs the kernel's mapping and the frequency of calls to kmap_atomic_pfn_t(). I'm sure you can make this loop look bad with a micro-benchmark, but the whole point of DAX is to get the kernel out of the I/O path, so I'm not sure this overhead shows up in any real way in practice. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v5 0/5] introduce __pfn_t for unmapped pfn I/O and DAX lifetime Dan Williams <dan.j.williams@intel.com> - 2015-08-13 05:10 +0200
[PATCH v5 1/5] mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h Dan Williams <dan.j.williams@intel.com> - 2015-08-13 05:10 +0200
[PATCH v5 5/5] scatterlist: convert to __pfn_t Dan Williams <dan.j.williams@intel.com> - 2015-08-13 05:10 +0200
[PATCH v5 3/5] dax: drop size parameter to ->direct_access() Dan Williams <dan.j.williams@intel.com> - 2015-08-13 05:10 +0200
[PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Dan Williams <dan.j.williams@intel.com> - 2015-08-13 05:10 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Boaz Harrosh <boaz@plexistor.com> - 2015-08-13 08:00 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Dan Williams <dan.j.williams@intel.com> - 2015-08-13 15:00 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Boaz Harrosh <boaz@plexistor.com> - 2015-08-13 15:30 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Christoph Hellwig <hch@lst.de> - 2015-08-13 16:50 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Boaz Harrosh <boaz@plexistor.com> - 2015-08-13 17:10 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Christoph Hellwig <hch@lst.de> - 2015-08-13 16:40 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Boaz Harrosh <boaz@plexistor.com> - 2015-08-13 16:50 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Boaz Harrosh <boaz@plexistor.com> - 2015-08-13 17:30 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Dave Hansen <dave@sr71.net> - 2015-08-13 19:40 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Matthew Wilcox <willy@linux.intel.com> - 2015-08-13 19:40 +0200
Re: [PATCH v5 2/5] allow mapping page-less memremaped areas into KVA Dan Williams <dan.j.williams@intel.com> - 2015-08-13 20:20 +0200
[PATCH v5 4/5] dax: fix mapping lifetime handling, convert to __pfn_t + kmap_atomic_pfn_t() Dan Williams <dan.j.williams@intel.com> - 2015-08-13 05:10 +0200
Re: [PATCH v5 4/5] dax: fix mapping lifetime handling, convert to __pfn_t + kmap_atomic_pfn_t() Boaz Harrosh <boaz@plexistor.com> - 2015-08-13 08:30 +0200
Re: [PATCH v5 4/5] dax: fix mapping lifetime handling, convert to __pfn_t + kmap_atomic_pfn_t() Dan Williams <dan.j.williams@intel.com> - 2015-08-13 17:30 +0200
Re: [PATCH v5 4/5] dax: fix mapping lifetime handling, convert to __pfn_t + kmap_atomic_pfn_t() Boaz Harrosh <boaz@plexistor.com> - 2015-08-13 18:40 +0200
Re: [PATCH v5 4/5] dax: fix mapping lifetime handling, convert to __pfn_t + kmap_atomic_pfn_t() Dan Williams <dan.j.williams@intel.com> - 2015-08-13 21:00 +0200
csiph-web