From: Khalid Aziz <khalid.aziz@oracle.com>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: gregkh@linuxfoundation.org, bhutchings@solarflare.com,
pshelar@nicira.com, cl@linux.com, hannes@cmpxchg.org,
mel@csn.ul.ie, riel@redhat.com, minchan@kernel.org,
andi@firstfloor.org, akpm@linux-foundation.org,
torvalds@linux-foundation.org, linux-mm@kvack.org
Subject: Re: [PATCH] mm: hugetlbfs: fix hugetlbfs optimization
Date: Thu, 07 Nov 2013 10:18:02 -0700 [thread overview]
Message-ID: <527BCB4A.8030801@oracle.com> (raw)
In-Reply-To: <20131105221017.GI3835@redhat.com>
On 11/05/2013 03:10 PM, Andrea Arcangeli wrote:
> Hi,
>
> this patch is an alternative implementation of the hugetlbfs directio
> optimization discussed earlier. We've been looking into this with
> Khalid last week and an earlier version of this patch (fully
> equivalent as far as CPU overhead is concerned) was benchmarked by
> Khalid and it didn't degrade performance compared to the PageHuge
> check in current upstream code, so we should be good.
>
> The patch applies cleanly only after reverting
> 7cb2ef56e6a8b7b368b2e883a0a47d02fed66911, it's much easier to review
> it in this form as it avoids all the alignment changes. I'll resend to
> Andrew against current upstream by squashing it with the revert after
> reviews.
>
> I wished to remove the _mapcount tailpage refcounting for slab and
> hugetlbfs tails too, but if the last put_page of a slab tail happens
> after the slab page isn't a slab page anymore (but still compound as
> it wasn't freed yet because of the tail pin), a VM_BUG_ON would
> trigger during the last (unpinning) put_page(slab_tail) with the
> mapcount underflow:
>
> VM_BUG_ON(page_mapcount(page) <= 0);
>
> Not even sure if any driver is doing anything like that, but the
> current code would allow it, Pravin should know more about when
> exactly in which conditions the last put_page is done on slab tail
> pages.
>
> It shall be possible to remove the _mapcount refcounting anyway, as it
> is only read by split_huge_page and so it doesn't actually matter if
> it underflows, but I prefer to keep the VM_BUG_ON. In fact I added one
> more VM_BUG_ON(!PageHead()) even in this patch.
>
> I also didn't notice we missed a PageHead check before calling
> __put_single_page(page_head), so I corrected that. It sounds very
> unlikely that it could have ever triggered but still better to fix it.
>
> I just booted it... not very well tested yet. Help with the testing
> appreciated :).
>
Hi Andrea,
I ran performance tests on this patch. I am seeing 4.5% degradation with
1M random reads, 9.2% degradation with 64K random reads and 13.8%
degradation with 8K using the orion tool. Just to double check, I
repeated the same tests with the last version of patch we had exchanged
before some of the final tweaks you made and degradation with that patch
is 0.7% for 1M, 2.3% with 64K and 3% for 8K. Actual numbers are in the
table below (all numbers are in MB/s):
3.12.0 3.12.0+this_patch 3.12.0+prev_patch
------- ------------------ -----------------
1M 8467 8087 (-4.5%) 8409 (-0.7%)
64K 4049 3675 (-9.2%) 3957 (-2.3%)
8K 732 631 (-13.8%) 710 (-3.0%)
One of the tweaks is causing problems. I will try to isolate which one.
--
Khalid
--
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:[~2013-11-07 17:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-05 22:10 [PATCH] mm: hugetlbfs: fix hugetlbfs optimization Andrea Arcangeli
2013-11-07 17:18 ` Khalid Aziz [this message]
2013-11-12 19:22 ` Pravin Shelar
2013-11-13 16:10 ` Andrea Arcangeli
2013-11-15 17:00 ` Andrea Arcangeli
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=527BCB4A.8030801@oracle.com \
--to=khalid.aziz@oracle.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=bhutchings@solarflare.com \
--cc=cl@linux.com \
--cc=gregkh@linuxfoundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=minchan@kernel.org \
--cc=pshelar@nicira.com \
--cc=riel@redhat.com \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.