Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1510900 > unrolled thread
| Started by | "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> |
|---|---|
| First post | 2016-10-28 09:40 +0200 |
| Last post | 2016-10-28 18:20 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [RFC 0/8] Define coherent device memory node "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> - 2016-10-28 09:40 +0200
Re: [RFC 0/8] Define coherent device memory node Jerome Glisse <j.glisse@gmail.com> - 2016-10-28 18:20 +0200
| From | "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> |
|---|---|
| Date | 2016-10-28 09:40 +0200 |
| Subject | Re: [RFC 0/8] Define coherent device memory node |
| Message-ID | <sx9VD-5fQ-1@gated-at.bofh.it> |
Jerome Glisse <j.glisse@gmail.com> writes:
> On Wed, Oct 26, 2016 at 04:39:19PM +0530, Aneesh Kumar K.V wrote:
>> Jerome Glisse <j.glisse@gmail.com> writes:
>>
>> > On Tue, Oct 25, 2016 at 09:56:35AM +0530, Aneesh Kumar K.V wrote:
>> >> Jerome Glisse <j.glisse@gmail.com> writes:
>> >>
>> >> > On Mon, Oct 24, 2016 at 10:01:49AM +0530, Anshuman Khandual wrote:
>> >> >
>> >> I looked at the hmm-v13 w.r.t migration and I guess some form of device
>> >> callback/acceleration during migration is something we should definitely
>> >> have. I still haven't figured out how non addressable and coherent device
>> >> memory can fit together there. I was waiting for the page cache
>> >> migration support to be pushed to the repository before I start looking
>> >> at this closely.
>> >>
>> >
>> > The page cache migration does not touch the migrate code path. My issue with
>> > page cache is writeback. The only difference with existing migrate code is
>> > refcount check for ZONE_DEVICE page. Everything else is the same.
>>
>> What about the radix tree ? does file system migrate_page callback handle
>> replacing normal page with ZONE_DEVICE page/exceptional entries ?
>>
>
> It use the exact same existing code (from mm/migrate.c) so yes the radix tree
> is updated and buffer_head are migrated.
>
I looked at the the page cache migration patches shared and I find that
you are not using exceptional entries when we migrate a page cache page to
device memory. But I am now not sure how a read from page cache will
work with that.
ie, a file system read will now find the page in page cache. But we
cannot do a copy_to_user of that page because that is now backed by an
unaddressable memory right ?
do_generic_file_read() does
page = find_get_page(mapping, index);
....
ret = copy_page_to_iter(page, offset, nr, iter);
which does
void *kaddr = kmap_atomic(page);
size_t wanted = copy_to_iter(kaddr + offset, bytes, i);
kunmap_atomic(kaddr);
-aneesh
[toc] | [next] | [standalone]
| From | Jerome Glisse <j.glisse@gmail.com> |
|---|---|
| Date | 2016-10-28 18:20 +0200 |
| Message-ID | <sxi2R-2c2-7@gated-at.bofh.it> |
| In reply to | #1510900 |
On Fri, Oct 28, 2016 at 10:59:52AM +0530, Aneesh Kumar K.V wrote: > Jerome Glisse <j.glisse@gmail.com> writes: > > > On Wed, Oct 26, 2016 at 04:39:19PM +0530, Aneesh Kumar K.V wrote: > >> Jerome Glisse <j.glisse@gmail.com> writes: > >> > >> > On Tue, Oct 25, 2016 at 09:56:35AM +0530, Aneesh Kumar K.V wrote: > >> >> Jerome Glisse <j.glisse@gmail.com> writes: > >> >> > >> >> > On Mon, Oct 24, 2016 at 10:01:49AM +0530, Anshuman Khandual wrote: > >> >> > > >> >> I looked at the hmm-v13 w.r.t migration and I guess some form of device > >> >> callback/acceleration during migration is something we should definitely > >> >> have. I still haven't figured out how non addressable and coherent device > >> >> memory can fit together there. I was waiting for the page cache > >> >> migration support to be pushed to the repository before I start looking > >> >> at this closely. > >> >> > >> > > >> > The page cache migration does not touch the migrate code path. My issue with > >> > page cache is writeback. The only difference with existing migrate code is > >> > refcount check for ZONE_DEVICE page. Everything else is the same. > >> > >> What about the radix tree ? does file system migrate_page callback handle > >> replacing normal page with ZONE_DEVICE page/exceptional entries ? > >> > > > > It use the exact same existing code (from mm/migrate.c) so yes the radix tree > > is updated and buffer_head are migrated. > > > > I looked at the the page cache migration patches shared and I find that > you are not using exceptional entries when we migrate a page cache page to > device memory. But I am now not sure how a read from page cache will > work with that. > > ie, a file system read will now find the page in page cache. But we > cannot do a copy_to_user of that page because that is now backed by an > unaddressable memory right ? > > do_generic_file_read() does > page = find_get_page(mapping, index); > .... > ret = copy_page_to_iter(page, offset, nr, iter); > > which does > void *kaddr = kmap_atomic(page); > size_t wanted = copy_to_iter(kaddr + offset, bytes, i); > kunmap_atomic(kaddr); Like i said right now for un-addressable memory my patches are mostly broken. For read and write. I am focusing on page write back for now as it seemed to be the more problematic case. For read/write the intention is to trigger a migration back to system memory inside read/write of filesystem. This is also why i will need a flag to indicate if a filesystem support migration to un-addressable memory. But in your case where the device memory is accessible then it should just work, or do you need to do special thing when kmaping device page ? Cheers, Jérôme
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web