All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eugene Surovegin <ebs@ebshome.net>
To: Marius Groeger <mgroeger@sysgo.com>
Cc: linuxppc-dev@lists.linuxppc.org
Subject: Re: [RFC] Simple ioremap cache
Date: Mon, 7 Jun 2004 02:26:22 -0700	[thread overview]
Message-ID: <20040607092622.GA31404@gate.ebshome.net> (raw)
In-Reply-To: <Pine.LNX.4.56.0406071100110.11623@mag.sysgo.com>


On Mon, Jun 07, 2004 at 11:12:42AM +0200, Marius Groeger wrote:
> > > To do this, I think you also need
> > > to flag a bigger virtual page size to the MMU, eg. program a different
> > > PAGESZ_* value (see include/asm-ppc/mmu.h). If you don't, the MMU has to
> > > manage diffent chunks all the same, they just happen to be virtually
> > > contiguous.
> >
> > I don't follow you here, sorry. Could you give some examples with
> > the real TLB contents for the cases you are describing?
>
> What I mean is to merge/coaelsce individual mappings within the same
> IO area. Eg., consider an IO area with multiple resources at
> 0xd000.0000 spanning more than one 4k page. Now, driver A requests
> access to a page at 0xd0000.0100, and driver B wants to access
> 0xd0003.0400. Usually, this would lead to 2 diffent mapping entries
> for the following phys base/size pairs (0xd0000.0000, 0x1000);
> (0xd0003.0000, 0x1000). With optimization, this could be handled by
> one mapping at 0xd0000.0000 spanning a 16k page. It's a bit like when
> BATs are used to cover larger chunks.
>
> Again, this was an idea we had a while ago. I don't know how much real
> remedy is in implementing it. There once was also talk about a "big
> TLB" patch. I haven't checked if this is already part of 2.5/2.6.

Yeah, I see now.

This kind of coalescing might be useful for PCI device drivers ioremaps (I saw
some adjacent mappings on tipb - I _think_ they were different PCI peripherals)

>
> > What do you mean "just mapping entries" ? TLB slots contain these "mapping
> > entries", that's the whole purpose of TLB.
>
> Yes, but 4xx allows for variable sized TLBs.

Sure, these big TLBs are even used for kernel lowmem mappings on 4xx (again to
save some TLB misses :)

Eugene


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

  reply	other threads:[~2004-06-07  9:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-05  0:29 [RFC] Simple ioremap cache Eugene Surovegin
2004-06-07  7:46 ` Marius Groeger
2004-06-07  8:48   ` Eugene Surovegin
2004-06-07  9:12     ` Marius Groeger
2004-06-07  9:26       ` Eugene Surovegin [this message]
2004-06-07 14:58 ` Kumar Gala
2004-06-07 15:27   ` Benjamin Herrenschmidt
2004-06-07 17:47   ` Kumar Gala

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=20040607092622.GA31404@gate.ebshome.net \
    --to=ebs@ebshome.net \
    --cc=linuxppc-dev@lists.linuxppc.org \
    --cc=mgroeger@sysgo.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.