All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Hirst <rhirst@linuxcare.com>
To: David Huggins-Daines <dhd@linuxcare.com>
Cc: parisc-linux@thepuffingroup.com
Subject: Re: [parisc-linux] 2.4.0-test6 lack of speed
Date: Wed, 23 Aug 2000 17:23:20 +0100	[thread overview]
Message-ID: <20000823172320.E4060@linuxcare.com> (raw)
In-Reply-To: <87n1i5wabx.fsf@linuxcare.com>; from dhd@linuxcare.com on Tue, Aug 22, 2000 at 12:05:06PM -0400

On Tue, Aug 22, 2000 at 12:05:06PM -0400, David Huggins-Daines wrote:
> Richard Hirst <rhirst@linuxcare.com> writes:
> 
> > We just blindly assume addresses passed to flush_page_range() are
> > kernel virtual addresses, but in this case I guess they are user
> > process virtual addresses.
> 
> Right.  I noticed that the FIC/FICE/FDC/FDCE instructions have a space
> register field.  I wonder if we should be explicitly specifying %sr3,
> since that's what we use (ahem, what we *WOULD* use if <asm/uaccess.h>
> were actually implemented) to access user space.
> 
> Are PA-RISC caches indexed with the space ID as well as the offset?
> Do we need to flush kernel virtual addresses at all?

I should have said flush_cache_range() above, not flush_page_range().

It looks to me like all calls to flush_cache_range() are passed a user
virtual address, except for those calls from arch/parisc/kernel/pci-dma.c
where we pass kernel virtual addresses.

So perhaps flush_cache_range() should generate FIC/FICE/FDC/FDCE
instructions with a space register of %sr3, and pci-dma.c should
use some other method of flushing memory.

I was looking at the difference between FDC and FDCE; it seems FDC
does address translation and FDCE does not, so should we use FDC
really?  flush_cache_range() currently uses FDCE/FICE.

Helge Deller wrote some code in drivers/net/lasi_82596.c that plays
with %sr1 and uses FDC, FIC, PDC, SYNC, and SYNCDMA.

Can someone tell me why include/asm/cache.h has no space register
specified on fdce():

> #define fdce(addr) asm volatile("fdce 0(%0)" : : "r" (addr))
> #define fice(addr) asm volatile("fice 0(%%sr1,%0)" : : "r" (addr))
> 
> #define pdtlbe(addr) asm volatile("pdtlbe 0(%%sr1,%0)" : : "r" (addr))
> #define pitlbe(addr) asm volatile("pitlbe 0(%%sr1,%0)" : : "r" (addr))


Richard

ps. as you can see, I am learning as I go here, so all hints and
clues are gratefully accepted!

  reply	other threads:[~2000-08-23 16:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-08-22 14:38 [parisc-linux] 2.4.0-test6 lack of speed Richard Hirst
2000-08-22 14:52 ` Richard Hirst
2000-08-22 15:50   ` Richard Hirst
2000-08-22 16:05     ` David Huggins-Daines
2000-08-23 16:23       ` Richard Hirst [this message]
2000-08-23 16:38         ` Paul Bame
2000-08-24 13:46           ` Richard Hirst
2000-08-29 21:23         ` Matthew Wilcox
2000-08-30  0:17           ` Matthew Wilcox
2000-08-30  8:15             ` Richard Hirst
2000-08-30 12:41             ` Richard Hirst
2000-08-30 10:15           ` Richard Hirst
2000-08-30 13:18             ` Matthew Wilcox

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=20000823172320.E4060@linuxcare.com \
    --to=rhirst@linuxcare.com \
    --cc=dhd@linuxcare.com \
    --cc=parisc-linux@thepuffingroup.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.