linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
To: James Bottomley
	<James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
Cc: "Linus Torvalds"
	<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	"Trond Myklebust"
	<Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Marc Kleine-Budde" <mkl-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"Uwe Kleine-König"
	<u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"Marc Kleine-Budde"
	<m.kleine-budde-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	"Parisc List"
	<linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: still nfs problems [Was: Linux 2.6.37-rc8]
Date: Wed, 5 Jan 2011 20:00:08 +0000	[thread overview]
Message-ID: <20110105200008.GJ8638@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1294256169.16957.18.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>

On Wed, Jan 05, 2011 at 01:36:09PM -0600, James Bottomley wrote:
> On Wed, 2011-01-05 at 11:18 -0800, Linus Torvalds wrote:
> > On Wed, Jan 5, 2011 at 11:05 AM, James Bottomley
> > <James.Bottomley-JuX6DAaQMKPCXq6kfMZ53/egYHeGw8Jk@public.gmane.org> wrote:
> > >
> > > I think the solution for the kernel direct mapping problem is to take
> > > the expected flushes and invalidates into kmap/kunmap[_atomic].
> > 
> > No, we really can't do that. Most of the time, the kmap() is the only
> > way we access the page anyway, so flushing things would just be
> > stupid. Why waste time and energy on doing something pointless?
> 
> It's hardly pointless.  The kmap sets up an inequivalent alias in the
> cache.

No it doesn't.  For pages which are inaccessible, it sets up a mapping
for those pages.  On aliasing cache architectures, when you tear down
such a mapping, you have to flush the cache before you do so (otherwise
you can end up with cache lines existing in the cache for inaccessible
mappings.)

For lowmem pages, kmap() (should always) bypass the 'setup mapping' stage
because all lowmem pages are already accessible.  So kunmap() doesn't
do anything - just like the !HIGHMEM implementation for these macros.

So, for highmem-enabled systems:

	low_addr = kmap_atomic(lowmem_page);
	high_addr = kmap_atomic(highmem_page);

results in low_addr in the kernel direct-mapped region, and high_addr
in the kmap_atomic region.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: "Linus Torvalds" <torvalds@linux-foundation.org>,
	"Trond Myklebust" <Trond.Myklebust@netapp.com>,
	linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Marc Kleine-Budde" <mkl@pengutronix.de>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Marc Kleine-Budde" <m.kleine-budde@pengutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	"Parisc List" <linux-parisc@vger.kernel.org>,
	linux-arch@vger.kernel.org
Subject: Re: still nfs problems [Was: Linux 2.6.37-rc8]
Date: Wed, 5 Jan 2011 20:00:08 +0000	[thread overview]
Message-ID: <20110105200008.GJ8638@n2100.arm.linux.org.uk> (raw)
Message-ID: <20110105200008.sZnZBY3nn1HYbkSSZrbNA-5VjhWfjApzIBTGOsAewIs@z> (raw)
In-Reply-To: <1294256169.16957.18.camel@mulgrave.site>

On Wed, Jan 05, 2011 at 01:36:09PM -0600, James Bottomley wrote:
> On Wed, 2011-01-05 at 11:18 -0800, Linus Torvalds wrote:
> > On Wed, Jan 5, 2011 at 11:05 AM, James Bottomley
> > <James.Bottomley@hansenpartnership.com> wrote:
> > >
> > > I think the solution for the kernel direct mapping problem is to take
> > > the expected flushes and invalidates into kmap/kunmap[_atomic].
> > 
> > No, we really can't do that. Most of the time, the kmap() is the only
> > way we access the page anyway, so flushing things would just be
> > stupid. Why waste time and energy on doing something pointless?
> 
> It's hardly pointless.  The kmap sets up an inequivalent alias in the
> cache.

No it doesn't.  For pages which are inaccessible, it sets up a mapping
for those pages.  On aliasing cache architectures, when you tear down
such a mapping, you have to flush the cache before you do so (otherwise
you can end up with cache lines existing in the cache for inaccessible
mappings.)

For lowmem pages, kmap() (should always) bypass the 'setup mapping' stage
because all lowmem pages are already accessible.  So kunmap() doesn't
do anything - just like the !HIGHMEM implementation for these macros.

So, for highmem-enabled systems:

	low_addr = kmap_atomic(lowmem_page);
	high_addr = kmap_atomic(highmem_page);

results in low_addr in the kernel direct-mapped region, and high_addr
in the kmap_atomic region.

  parent reply	other threads:[~2011-01-05 20:00 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-05 19:05 still nfs problems [Was: Linux 2.6.37-rc8] James Bottomley
2011-01-05 19:18 ` Linus Torvalds
     [not found]   ` <AANLkTi=VZUxNFd7n-qwf5aiOeK5rkk8qBmo+kOpgg7up-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-01-05 19:36     ` James Bottomley
2011-01-05 19:36       ` James Bottomley
2011-01-05 19:49       ` Linus Torvalds
2011-01-05 20:35         ` James Bottomley
     [not found]       ` <1294256169.16957.18.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>
2011-01-05 20:00         ` Russell King - ARM Linux [this message]
2011-01-05 20:00           ` Russell King - ARM Linux
2011-01-05 20:33           ` James Bottomley
2011-01-05 20:33             ` James Bottomley
2011-01-05 20:48             ` Linus Torvalds
     [not found]               ` <AANLkTimzzBsdtWcZtP5E_CH1hUZugGMoaHOiMdQJf764-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-01-05 21:04                 ` Russell King - ARM Linux
2011-01-05 21:04                   ` Russell King - ARM Linux
2011-01-05 21:08                   ` Linus Torvalds
2011-01-05 21:08                     ` Linus Torvalds
     [not found]                     ` <AANLkTi=EXXBTW7oWHq3D+PHsx=thF1CpkRjn0ax2p5rm-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-01-05 21:16                       ` Trond Myklebust
2011-01-05 21:16                         ` Trond Myklebust
     [not found]                         ` <1294262208.2952.4.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-01-05 21:30                           ` Linus Torvalds
2011-01-05 21:30                             ` Linus Torvalds
2011-01-05 23:06                             ` Trond Myklebust
2011-01-05 23:06                               ` Trond Myklebust
2011-01-05 23:28                               ` James Bottomley
2011-01-06 17:40                                 ` James Bottomley
2011-01-06 17:47                                   ` Trond Myklebust
2011-01-06 17:51                                     ` James Bottomley
2011-01-06 17:55                                     ` Linus Torvalds
2011-01-06 17:55                                       ` Linus Torvalds
2011-01-07 18:53                                       ` Trond Myklebust
     [not found]                                         ` <1294426405.2929.23.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-01-07 19:02                                           ` Russell King - ARM Linux
2011-01-07 19:02                                             ` Russell King - ARM Linux
2011-01-07 19:11                                             ` James Bottomley
2011-01-07 19:11                                               ` James Bottomley
     [not found]                                               ` <1294427467.4895.66.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>
2011-01-08 16:49                                                 ` Trond Myklebust
2011-01-08 16:49                                                   ` Trond Myklebust
2011-01-08 23:15                                                   ` Trond Myklebust
2011-01-08 23:15                                                     ` Trond Myklebust
     [not found]                                                     ` <1294528551.4181.19.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-01-10 10:50                                                       ` Uwe Kleine-König
2011-01-10 10:50                                                         ` Uwe Kleine-König
2011-01-10 16:25                                                         ` Trond Myklebust
     [not found]                                                           ` <1294676734.3349.10.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-01-10 17:08                                                             ` Marc Kleine-Budde
2011-01-10 17:08                                                               ` Marc Kleine-Budde
2011-01-10 17:20                                                               ` Trond Myklebust
     [not found]                                                                 ` <1294680035.3349.19.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2011-01-10 17:26                                                                   ` Marc Kleine-Budde
2011-01-10 17:26                                                                     ` Marc Kleine-Budde
2011-01-10 19:25                                                                 ` Uwe Kleine-König
     [not found]                                                                   ` <20110110192552.GG24920-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2011-01-10 19:29                                                                     ` Trond Myklebust
2011-01-10 19:29                                                                       ` Trond Myklebust
2011-01-10 19:31                                                                       ` James Bottomley
2011-01-10 19:34                                                                       ` Linus Torvalds
2011-01-10 19:34                                                                         ` Linus Torvalds
2011-01-10 20:15                                                                         ` Trond Myklebust
2011-01-10 12:44                                                       ` Marc Kleine-Budde
2011-01-10 12:44                                                         ` Marc Kleine-Budde
2011-01-07 19:13                                             ` Trond Myklebust
2011-01-07 19:05                                         ` James Bottomley
     [not found]                                   ` <1294335614.22825.154.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>
2011-01-06 18:05                                     ` Russell King - ARM Linux
2011-01-06 18:05                                       ` Russell King - ARM Linux
2011-01-06 18:14                                       ` James Bottomley
2011-01-06 18:14                                         ` James Bottomley
     [not found]                                         ` <1294337670.22825.199.camel-0iu6Cu4xQGLYCGPCin2YbQ@public.gmane.org>
2011-01-06 18:25                                           ` James Bottomley
2011-01-06 18:25                                             ` James Bottomley
2011-01-06 21:07                                             ` James Bottomley
2011-01-06 21:07                                               ` James Bottomley
2011-01-06 20:19                                   ` John Stoffel
2011-01-06 20:19                                     ` John Stoffel
2011-01-05 23:28                               ` Linus Torvalds
2011-01-05 23:28                                 ` Linus Torvalds
     [not found]                                 ` <AANLkTi=SjMinMp+m726GS1iehj6cQgNy1RqSoUqKhjtv-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-01-05 23:59                                   ` Russell King - ARM Linux
2011-01-05 23:59                                     ` Russell King - ARM Linux
2011-01-05 21:16               ` James Bottomley
2011-01-05 21:16                 ` James Bottomley

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=20110105200008.GJ8638@n2100.arm.linux.org.uk \
    --to=linux-lfz/pmaqli7xmaaqvzeohq@public.gmane.org \
    --cc=James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org \
    --cc=Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org \
    --cc=linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=m.kleine-budde-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=mkl-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).