Linux PARISC architecture development
 help / color / mirror / Atom feed
* Re: [parisc-linux] 2.4.19-pa24 (uaccess.h patch)
@ 2002-10-29  5:55 John Marvin
  2002-10-29 13:51 ` Matthew Wilcox
  2002-10-29 17:41 ` Grant Grundler
  0 siblings, 2 replies; 5+ messages in thread
From: John Marvin @ 2002-10-29  5:55 UTC (permalink / raw)
  To: parisc-linux

> Well.. if you're interested in working on PA again, I have 3 ideas which
> kind of overlap (you seem to have confused two of them, so it's worth
> talking about them all):

I didn't get them confused in the way you think.  I knew that you were
proposing using kmap/kunmap to solve the flushing/aliasing issues,
especially on stretch.  But I saw your todo message suggesting the use of
zone_highmem for getting back the 256Mb.  My 2.4 based understanding is
that the kernel kmaps memory in that zone in order to use it.  That may no
longer be true on 2.5 (or may not ever have been true in the first place).
I'll be looking at that immediately, since I have to either merge the
virtual mem map stuff into 2.5, or see if the vm changes with respect to
zones will solve the problem as you suggest. Whatever works for ia64
will probably also work for parisc, since the problem is similar (although
a little more extreme on ia64).

On another note, I am still looking at the I bit issue with respect to
handle_interruption. What I forgot was that we always turn the I bit
off when we switch to virtual mode before calling handle_interruption.
So, the I bit needs to be on for user faults at the very least. That is
why I put that code in there.

However, Grant is right in that there is a hole if the kernel faults with
the I bit off.  Normally that would be a bug, i.e. there are few valid
reasons for the kernel to fault with the I bit off (what I mean by fault
in this case is something that makes it to handle_interruption, not
something that gets handled at a lower level, like a tlb miss).  But, I
can think of a few possible scenarios where it might be happen
legitimately, although I don't know if any actually occur.

The right solution is to restore the I bit to whatever it was at the time
of the fault.  That is probably more appropriately handled at virt_map
time (add a register argument to the macro holding the desired I bit
state, call with r0 for intr_extint, call with previous masked value from
ipsw for intr_save).  I believe if done right, we can also set things up
properly in hpmc.S so that when it calls intr_save, the I bit won't be
turned on, and we can remove the special case code from handle_interruption.

I'm also looking at a potential problem in parisc's return from
syscall/faults.  I'll hopefully fix all the above soon.  And yes, I'll
merge it into 2.5 also.

John

^ permalink raw reply	[flat|nested] 5+ messages in thread
* Re: [parisc-linux] 2.4.19-pa24 (uaccess.h patch)
@ 2002-10-29  0:12 John Marvin
  2002-10-29  2:14 ` Matthew Wilcox
  0 siblings, 1 reply; 5+ messages in thread
From: John Marvin @ 2002-10-29  0:12 UTC (permalink / raw)
  To: parisc-linux

>
> ex_table is used for recovering from a page fault.  i don't see how we
> can take a page fault when copying to kernel ram.
>

Let's wait on removing this support.  This mechanism provides a way of
testing whether or not an address is a valid kernel address (in addition
to range checking the address).  I'd like to consider implementing the
virtual mem map support (currently implemented on ia64) on parisc as an
alternative mechanism (to willy's idea of using kmap/kunmap) for getting
back the 256Mb of memory we currently ignore for Astro based machines with
more than 3.75 Gb of memory.  The virtual mem map code uses this exact
mechanism to determine whether or not a struct page pointer is pointing
into a sparse (unallocated) region of the virtual mem map array (i.e. on
ia64 the ia64_page_valid() routine does a get_user on the first byte and
checks the return from get_user to see if it fails/succeeds).

John

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2002-10-29 17:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-29  5:55 [parisc-linux] 2.4.19-pa24 (uaccess.h patch) John Marvin
2002-10-29 13:51 ` Matthew Wilcox
2002-10-29 17:41 ` Grant Grundler
  -- strict thread matches above, loose matches on Subject: below --
2002-10-29  0:12 John Marvin
2002-10-29  2:14 ` Matthew Wilcox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox