From: Alexey Korolev <akorolex@gmail.com>
To: Mel Gorman <mel@csn.ul.ie>
Cc: Eric Munson <linux-mm@mgebm.net>,
Alexey Korolev <akorolev@infradead.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/3]HTLB mapping for drivers (take 2)
Date: Thu, 20 Aug 2009 19:03:28 +1200 [thread overview]
Message-ID: <202cde0e0908200003w43b91ac3v8a149ec1ace45d6d@mail.gmail.com> (raw)
In-Reply-To: <20090819100553.GE24809@csn.ul.ie>
Mel,
>> User level applications process the data.
>> Device is using a master DMA to send data to the user buffer, buffer
>> size can be >1GB and performance is very important. (So huge pages
>> mapping really makes sense.)
>>
>
> Ok, so the DMA may be faster because you have to do less scatter/gather
> and can DMA in larger chunks and and reading from userspace may be faster
> because there is less translation overhead. Right?
>
Less translation overhead is important. Unfortunately not all devices
have scatter/gather
(our case) as having it increase h/w complexity a lot.
>> In addition we have to mention that:
>> 1. It is hard for user to tell how much huge pages needs to be
>> reserved by the driver.
>
> I think you have this problem either way. If the buffer is allocated and
> populated before mmap(), then the driver is going to have to guess how many
> pages it needs. If the DMA occurs as a result of mmap(), it's easier because
> you know the number of huge pages to be reserved at that point and you have
> the option of falling back to small pages if necessary.
>
>> 2. Devices add constrains on memory regions. For example it needs to
>> be contiguous with in the physical address space. It is necessary to
>> have ability to specify special gfp flags.
>
> The contiguity constraints are the same for huge pages. Do you mean there
> are zone restrictions? If so, the hugetlbfs_file_setup() function could be
> extended to specify a GFP mask that is used for the allocation of hugepages
> and associated with the hugetlbfs inode. Right now, there is a htlb_alloc_mask
> mask that is applied to some additional flags so htlb_alloc_mask would be
> the default mask unless otherwise specified.
>
Under contiguous I mean that we need several huge pages being
physically contiguous.
To obtain it we allocate pages till not find a contig. region
(success) or reach a boundary (fail).
So in our particular case approach based on getting pages from
hugetlbfs won't work
because memory region will not be contiguous.
However this approach will give an easy way to support hugetlb
mapping, it won't cause any complexity
in accounting. But it will be suitable for hardware with large amount
of sg regions only.
>
> How about;
>
> o Extend Eric's helper slightly to take a GFP mask that is
> associated with the inode and used for allocations from
> outside the hugepage pool
> o A helper that returns the page at a given offset within
> a hugetlbfs file for population before the page has been
> faulted.
Do you mean get_user_pages call?
Alexey
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2009-08-20 7:03 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-17 22:24 Alexey Korolev
2009-08-18 10:29 ` Eric Munson
2009-08-19 5:48 ` Alexey Korolev
2009-08-19 10:05 ` Mel Gorman
2009-08-19 10:35 ` Eric B Munson
2009-08-20 7:03 ` Alexey Korolev [this message]
2009-08-25 10:47 ` Mel Gorman
2009-08-25 11:00 ` Benjamin Herrenschmidt
2009-08-25 11:10 ` Mel Gorman
2009-08-26 9:58 ` Benjamin Herrenschmidt
2009-08-26 10:05 ` Mel Gorman
2009-08-24 6:14 ` Alexey Korolev
2009-08-25 10:53 ` Mel Gorman
2009-08-27 12:02 ` Alexey Korolev
2009-08-27 12:50 ` Mel Gorman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202cde0e0908200003w43b91ac3v8a149ec1ace45d6d@mail.gmail.com \
--to=akorolex@gmail.com \
--cc=akorolev@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-mm@mgebm.net \
--cc=mel@csn.ul.ie \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox