On 03/26/2013 03:48 AM, Kirill A. Shutemov wrote:
> Dave Hansen wrote:
>>> +repeat:
>>> + page = find_lock_page(mapping, index);
>>> + if (page) {
>>> + if (!PageTransHuge(page)) {
>>> + unlock_page(page);
>>> + page_cache_release(page);
>>> +
Dave Hansen wrote:
> > +repeat:
> > + page = find_lock_page(mapping, index);
> > + if (page) {
> > + if (!PageTransHuge(page)) {
> > + unlock_page(page);
> > + page_cache_release(page);
> > + return NULL;
> > + }
> > +
Dave Hansen wrote:
+repeat:
+ page = find_lock_page(mapping, index);
+ if (page) {
+ if (!PageTransHuge(page)) {
+ unlock_page(page);
+ page_cache_release(page);
+ return NULL;
+ }
+ goto
On 03/26/2013 03:48 AM, Kirill A. Shutemov wrote:
Dave Hansen wrote:
+repeat:
+ page = find_lock_page(mapping, index);
+ if (page) {
+ if (!PageTransHuge(page)) {
+ unlock_page(page);
+ page_cache_release(page);
+ return
On 03/14/2013 10:50 AM, Kirill A. Shutemov wrote:
> +found:
> + wait_on_page_writeback(page);
> + return page;
> +}
> +#endif
In grab_cache_page_write_begin(), this "wait" is:
wait_for_stable_page(page);
Why is it different here?
--
To unsubscribe from this list: send the line
On 03/14/2013 10:50 AM, Kirill A. Shutemov wrote:
> From: "Kirill A. Shutemov"
>
> The function is grab_cache_page_write_begin() twin but it tries to
> allocate huge page at given position aligned to HPAGE_CACHE_NR.
The obvious question, then, is whether we should just replace
On 03/14/2013 10:50 AM, Kirill A. Shutemov wrote:
From: Kirill A. Shutemov kirill.shute...@linux.intel.com
The function is grab_cache_page_write_begin() twin but it tries to
allocate huge page at given position aligned to HPAGE_CACHE_NR.
The obvious question, then, is whether we should just
On 03/14/2013 10:50 AM, Kirill A. Shutemov wrote:
+found:
+ wait_on_page_writeback(page);
+ return page;
+}
+#endif
In grab_cache_page_write_begin(), this wait is:
wait_for_stable_page(page);
Why is it different here?
--
To unsubscribe from this list: send the line
On Fri, Mar 15, 2013 at 9:35 PM, Kirill A. Shutemov
wrote:
> Hillf Danton wrote:
>> On Fri, Mar 15, 2013 at 9:24 PM, Kirill A. Shutemov
>> wrote:
>> > Hillf Danton wrote:
>> >> On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
>> >> wrote:
>> >> > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
>> >> >
Hillf Danton wrote:
> On Fri, Mar 15, 2013 at 9:24 PM, Kirill A. Shutemov
> wrote:
> > Hillf Danton wrote:
> >> On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
> >> wrote:
> >> > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
> >> > +struct page *grab_cache_huge_page_write_begin(struct address_space
>
On Fri, Mar 15, 2013 at 9:24 PM, Kirill A. Shutemov
wrote:
> Hillf Danton wrote:
>> On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
>> wrote:
>> > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
>> > +struct page *grab_cache_huge_page_write_begin(struct address_space
>> > *mapping,
>> > +
Hillf Danton wrote:
> On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
> wrote:
> > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
> > +struct page *grab_cache_huge_page_write_begin(struct address_space
> > *mapping,
> > + pgoff_t index, unsigned flags);
> > +#else
> > +static
Hillf Danton wrote:
On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+struct page *grab_cache_huge_page_write_begin(struct address_space
*mapping,
+ pgoff_t index, unsigned flags);
On Fri, Mar 15, 2013 at 9:24 PM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
Hillf Danton wrote:
On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+struct page *grab_cache_huge_page_write_begin(struct
Hillf Danton wrote:
On Fri, Mar 15, 2013 at 9:24 PM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
Hillf Danton wrote:
On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+struct page
On Fri, Mar 15, 2013 at 9:35 PM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
Hillf Danton wrote:
On Fri, Mar 15, 2013 at 9:24 PM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
Hillf Danton wrote:
On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
wrote:
> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
> +struct page *grab_cache_huge_page_write_begin(struct address_space *mapping,
> + pgoff_t index, unsigned flags);
> +#else
> +static inline struct page
From: "Kirill A. Shutemov"
The function is grab_cache_page_write_begin() twin but it tries to
allocate huge page at given position aligned to HPAGE_CACHE_NR.
If, for some reason, it's not possible allocate a huge page at this
possition, it returns NULL. Caller should take care of fallback to
From: Kirill A. Shutemov kirill.shute...@linux.intel.com
The function is grab_cache_page_write_begin() twin but it tries to
allocate huge page at given position aligned to HPAGE_CACHE_NR.
If, for some reason, it's not possible allocate a huge page at this
possition, it returns NULL. Caller
On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
kirill.shute...@linux.intel.com wrote:
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+struct page *grab_cache_huge_page_write_begin(struct address_space *mapping,
+ pgoff_t index, unsigned flags);
+#else
+static inline struct
20 matches
Mail list logo