All of lore.kernel.org
 help / color / mirror / Atom feed
From: Seth Jennings <sjenning@linux.vnet.ibm.com>
To: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: Minchan Kim <minchan@kernel.org>, Alex Shi <alex.shi@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	devel@driverdev.osuosl.org, Konrad Wilk <konrad.wilk@oracle.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Robert Jennings <rcj@linux.vnet.ibm.com>,
	Nitin Gupta <ngupta@vflare.org>
Subject: Re: [PATCH 3/3] x86: add local_tlb_flush_kernel_range()
Date: Wed, 27 Jun 2012 16:41:45 -0500	[thread overview]
Message-ID: <4FEB7E19.8040702@linux.vnet.ibm.com> (raw)
In-Reply-To: <80ad7298-23de-4c5e-9a8d-483198ae4ef1@default>

On 06/27/2012 04:15 PM, Dan Magenheimer wrote:
>> From: Seth Jennings [mailto:sjenning@linux.vnet.ibm.com]
>> I guess I'm not following.  Are you supporting the removal
>> of the "break even" logic?  I added that logic as a
>> compromise for Peter's feedback:
>>
>> http://lkml.org/lkml/2012/5/17/177
> 
> Yes, as long as I am correct that zsmalloc never has to map/flush
> more than two pages at a time, I think dealing with the break-even
> logic is overkill.

The implementation of local_flush_tlb_kernel_range()
shouldn't be influenced by zsmalloc at all.  Additionally,
we can't assume that zsmalloc will always be the only user
of this function.

> I see Peter isn't on this dist list... maybe
> you should ask him if he agrees, as long as we are only always
> talking about flush-two-TLB-pages vs flush-all.

Yes, I'm planning to send out the next version of patches
tomorrow (minus the first that has already been accepted)
and I'll include him like I should have the first time :-/

> (And, of course, per previous discussion, I think even mapping/flushing
> two TLB pages is unnecessary and overkill required only for protecting an
> abstraction, but will stop beating that dead horse. ;-)

With this patchset, I actually quantified the the
performance gain with page table assisted mapping vs mapping
via copy, and there is a significant 40% difference in
single-threaded performance.

You can do the test yourself by commenting out the
#define __HAVE_ARCH_LOCAL_FLUSH_TLB_KERNEL_RANGE
in tlbflush.h which will cause the new mapping via copy
method to be used.

--
Seth

--
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>

WARNING: multiple messages have this Message-ID (diff)
From: Seth Jennings <sjenning@linux.vnet.ibm.com>
To: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: Minchan Kim <minchan@kernel.org>, Alex Shi <alex.shi@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	devel@driverdev.osuosl.org, Konrad Wilk <konrad.wilk@oracle.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Robert Jennings <rcj@linux.vnet.ibm.com>,
	Nitin Gupta <ngupta@vflare.org>
Subject: Re: [PATCH 3/3] x86: add local_tlb_flush_kernel_range()
Date: Wed, 27 Jun 2012 16:41:45 -0500	[thread overview]
Message-ID: <4FEB7E19.8040702@linux.vnet.ibm.com> (raw)
In-Reply-To: <80ad7298-23de-4c5e-9a8d-483198ae4ef1@default>

On 06/27/2012 04:15 PM, Dan Magenheimer wrote:
>> From: Seth Jennings [mailto:sjenning@linux.vnet.ibm.com]
>> I guess I'm not following.  Are you supporting the removal
>> of the "break even" logic?  I added that logic as a
>> compromise for Peter's feedback:
>>
>> http://lkml.org/lkml/2012/5/17/177
> 
> Yes, as long as I am correct that zsmalloc never has to map/flush
> more than two pages at a time, I think dealing with the break-even
> logic is overkill.

The implementation of local_flush_tlb_kernel_range()
shouldn't be influenced by zsmalloc at all.  Additionally,
we can't assume that zsmalloc will always be the only user
of this function.

> I see Peter isn't on this dist list... maybe
> you should ask him if he agrees, as long as we are only always
> talking about flush-two-TLB-pages vs flush-all.

Yes, I'm planning to send out the next version of patches
tomorrow (minus the first that has already been accepted)
and I'll include him like I should have the first time :-/

> (And, of course, per previous discussion, I think even mapping/flushing
> two TLB pages is unnecessary and overkill required only for protecting an
> abstraction, but will stop beating that dead horse. ;-)

With this patchset, I actually quantified the the
performance gain with page table assisted mapping vs mapping
via copy, and there is a significant 40% difference in
single-threaded performance.

You can do the test yourself by commenting out the
#define __HAVE_ARCH_LOCAL_FLUSH_TLB_KERNEL_RANGE
in tlbflush.h which will cause the new mapping via copy
method to be used.

--
Seth


  reply	other threads:[~2012-06-27 21:42 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-25 16:14 [PATCH 0/3] zsmalloc: remove x86 dependency Seth Jennings
2012-06-25 16:14 ` Seth Jennings
2012-06-25 16:14 ` [PATCH 1/3] zram/zcache: swtich Kconfig dependency from X86 to ZSMALLOC Seth Jennings
2012-06-25 16:14   ` Seth Jennings
2012-06-27  2:37   ` Minchan Kim
2012-06-27  2:37     ` Minchan Kim
2012-06-27  2:43     ` Greg Kroah-Hartman
2012-06-27  2:43       ` Greg Kroah-Hartman
2012-06-27  2:49       ` Minchan Kim
2012-06-27  2:49         ` Minchan Kim
2012-06-27  3:21         ` Greg Kroah-Hartman
2012-06-27  3:21           ` Greg Kroah-Hartman
2012-06-27 15:40           ` Konrad Rzeszutek Wilk
2012-06-27 15:40             ` Konrad Rzeszutek Wilk
2012-06-27 18:55             ` Greg Kroah-Hartman
2012-06-27 18:55               ` Greg Kroah-Hartman
2012-06-27 18:52               ` Konrad Rzeszutek Wilk
2012-06-27 18:52                 ` Konrad Rzeszutek Wilk
2012-06-27 19:29                 ` Greg Kroah-Hartman
2012-06-27 19:29                   ` Greg Kroah-Hartman
2012-06-25 16:14 ` [PATCH 2/3] zsmalloc: add generic path and remove x86 dependency Seth Jennings
2012-06-25 16:14   ` Seth Jennings
2012-06-25 16:59   ` Greg Kroah-Hartman
2012-06-25 16:59     ` Greg Kroah-Hartman
2012-06-25 17:10     ` Seth Jennings
2012-06-25 17:10       ` Seth Jennings
2012-06-25 17:19       ` Greg Kroah-Hartman
2012-06-25 17:19         ` Greg Kroah-Hartman
2012-06-25 18:24         ` Seth Jennings
2012-06-25 18:24           ` Seth Jennings
2012-06-25 23:37           ` Greg Kroah-Hartman
2012-06-25 23:37             ` Greg Kroah-Hartman
2012-06-27  5:28   ` Minchan Kim
2012-06-27  5:28     ` Minchan Kim
2012-06-27 19:09     ` Seth Jennings
2012-06-27 19:09       ` Seth Jennings
2012-06-28  0:20       ` Minchan Kim
2012-06-28  0:20         ` Minchan Kim
2012-06-25 16:14 ` [PATCH 3/3] x86: add local_tlb_flush_kernel_range() Seth Jennings
2012-06-25 16:14   ` Seth Jennings
2012-06-25 23:01   ` Konrad Rzeszutek Wilk
2012-06-25 23:01     ` Konrad Rzeszutek Wilk
2012-06-26 13:39     ` Seth Jennings
2012-06-26 13:39       ` Seth Jennings
2012-06-27  5:53   ` Minchan Kim
2012-06-27  5:53     ` Minchan Kim
2012-06-27  6:14     ` Alex Shi
2012-06-27  6:14       ` Alex Shi
2012-06-27  6:26       ` Minchan Kim
2012-06-27  6:26         ` Minchan Kim
2012-06-27 15:12         ` Dan Magenheimer
2012-06-27 15:12           ` Dan Magenheimer
2012-06-27 15:39           ` Konrad Rzeszutek Wilk
2012-06-27 15:39             ` Konrad Rzeszutek Wilk
2012-06-27 18:35             ` Seth Jennings
2012-06-27 18:35               ` Seth Jennings
2012-06-27 18:33           ` Seth Jennings
2012-06-27 18:33             ` Seth Jennings
2012-06-27 21:15             ` Dan Magenheimer
2012-06-27 21:15               ` Dan Magenheimer
2012-06-27 21:41               ` Seth Jennings [this message]
2012-06-27 21:41                 ` Seth Jennings
2012-06-28  2:03             ` Alex Shi
2012-06-28  2:03               ` Alex Shi
2012-06-28 15:21               ` Seth Jennings
2012-06-28 15:21                 ` Seth Jennings
2012-06-29  0:19                 ` Alex Shi
2012-06-29  0:19                   ` Alex Shi

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=4FEB7E19.8040702@linux.vnet.ibm.com \
    --to=sjenning@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.shi@intel.com \
    --cc=dan.magenheimer@oracle.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan@kernel.org \
    --cc=ngupta@vflare.org \
    --cc=rcj@linux.vnet.ibm.com \
    /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.