Linux PARISC architecture development
 help / color / mirror / Atom feed
From: Frank Rowand <frank_rowand@hp.com>
To: Philipp Rumpf <Philipp.H.Rumpf@mathe.stud.uni-erlangen.de>
Cc: parisc-linux@thepuffingroup.com
Subject: Re: [parisc-linux] depi?
Date: Wed, 17 Nov 1999 10:56:33 -0800	[thread overview]
Message-ID: <3832FA61.F977451E@hp.com> (raw)
In-Reply-To: 19991117071226.G750@mathe.stud.uni-erlangen.de

Philipp Rumpf wrote:
> 
> >    - C code that needs to run in real mode seems to be rather fragile, given
> >      Paul's recent experience with head.c.  (I think it was Paul.)
> 
> We do need some tricks to get C code to run in real-mode, and several people
> are working on them.
> 
> When the kernel is mapped, we need to be extremely careful not to hit a
> vmalloced area or something when we call C code that should run in virtual
> mode in real mode.
> 
> It's letting the code fail obviously, for all cases, or letting easy code work
> now and wait for subtle bugs to occur.
> 
> Which one do you prefer ?
> 
> >    - A single instance of code can't (easily) be coded to be able to run both
> >      in real mode and in virtual mode.
> 
> That's true when we map the kernel at 0x0000 0000 as well.  Again, it's
> an obvious bug or a subtle one.


You missed my point.  An example: the os_hpmc() that I wrote only works in
real mode.  If I wanted it to be able to run in virtual mode, I would either
have to write a parallel version that uses virtual addresses (instead of
physical) or every time I used an address I would have to choose whether to
use the physical or virtual address, based on whether address translation was
turned on or not.

If the kernel is equivalently mapped, this problem goes away.


> >  - It's real easy to mis-code real mode assembly (eg. use the PA() macro when
> >    it shouldn't be used or don't use it when it should be used).
> 
> Is there any situation where you should not use PA() for a symbol in real-mode
> assembly ?  I agree branches are a bit difficult because the right way to code
> them is
> 
>         .+(PA(symbol)-PA(.))
> 
> but
> 
>         symbol
> 
> right now happens to work (this is good luck).


Look at os_hpmc() and see where it was not appropriate to use the PA() macro.


> I agree the PA() macro isn't a nice thing to use and if we have a chance to get
> rid of it, we should have a serious look.
> 
> >    - Issues with coherent I/O.
> 
> I don't see them.  I see issues with the architecture specification, but I do
> not believe there is any actual hardware around that depends on this issues.
>
> As far as I understood the implementation of cache-coherent I/O, what basically
> happens is:
> 
>  - I/O controller wants to access physical adress 0x1234 5678
>  - the I/O controller puts a special cycle on the bus it shares with the CPU(s)
>    that basically says "hey, if you have address 0x1234 5678 in your cache and
>    need to write it back, do it now"
>  - all CPUs have a look at the cache lines corresponding to 0x1234 5678, which
>    is the same cache lines as the one used for 0x9234 5678 (very very likely).
>  - all CPUs have a look at the tags of these cache lines, which happen to be
>    physical so 0x1234 5678 and 0x9234 5678 result in the same thing again.
>  - the guilty CPU gives back the cache line, or none does if the line doesn't
>    happen to be in the cache.
> 
> Furthermore, there is no publically documented coherent I/O system from HP yet
> so we have just to assume hardware we only heard rumours about will be sane
> once we get to see it.


So listen to the people who have read that documentation (like Grant).


>         Philipp Rumpf
> 
> ---------------------------------------------------------------------------
> To unsubscribe: send e-mail to parisc-linux-request@thepuffingroup.com with
> `unsubscribe' as the subject.

  reply	other threads:[~1999-11-17 18:55 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-11-15  8:08 [parisc-linux] depi? Alex deVries
1999-11-15  7:24 ` Jeffrey A Law
1999-11-15  7:36 ` Stan Sieler
1999-11-15  8:25   ` Philipp Rumpf
1999-11-15 23:14     ` Frank Rowand
1999-11-16  0:26       ` John David Anglin
1999-11-16 12:39         ` Matthew Wilcox
1999-11-16 17:17           ` Philipp Rumpf
1999-11-16  8:26       ` Philippe Benard
1999-11-16 12:20         ` Alan Cox
1999-11-16 11:53           ` Philippe Benard
1999-11-16 12:58             ` Alan Cox
1999-11-16 15:55             ` John David Anglin
1999-11-17 13:00             ` Philipp Rumpf
1999-11-16 12:35         ` Matthew Wilcox
1999-11-16 16:08       ` Philipp Rumpf
1999-11-16 17:14         ` Alan Cox
1999-11-16 16:47           ` Philipp Rumpf
1999-11-16 17:50             ` Alan Cox
1999-11-17  0:06             ` Grant Grundler
1999-11-17  6:21               ` Philipp Rumpf
1999-11-17 18:57                 ` Stan Sieler
1999-11-17 19:29                 ` Philipp Rumpf
1999-11-17 20:01                   ` Stan Sieler
1999-11-17 20:33                     ` Philipp Rumpf
1999-11-16 21:43         ` Frank Rowand
1999-11-17  6:12           ` Philipp Rumpf
1999-11-17 18:56             ` Frank Rowand [this message]
1999-11-17 22:05               ` Philipp Rumpf
1999-11-17 22:39                 ` John David Anglin
1999-11-17 22:52                   ` Philipp Rumpf
1999-11-17 23:37                     ` Stan Sieler
1999-11-18  0:09                       ` Philipp Rumpf
1999-11-18  0:43                         ` Frank Rowand
1999-11-18  1:35                           ` Frank Rowand
1999-11-18  5:33                           ` John David Anglin
1999-11-18  8:02                             ` Philippe Benard
1999-11-18 20:37                               ` John David Anglin
1999-11-18 22:38                                 ` Frank Rowand
1999-11-19  4:12                                 ` Philipp Rumpf
1999-11-19  9:08                                 ` Philippe Benard
1999-11-17 23:02                 ` Frank Rowand
1999-11-17 23:25                   ` Philipp Rumpf
1999-11-17  8:14         ` Philippe Benard
1999-11-15  8:19 ` Philipp Rumpf

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=3832FA61.F977451E@hp.com \
    --to=frank_rowand@hp.com \
    --cc=Philipp.H.Rumpf@mathe.stud.uni-erlangen.de \
    --cc=frowand@cup.hp.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox