* Mapping addresses 0xe000... and 0xc000...
@ 2004-01-15 22:31 Zoltan MENYHART
2004-01-15 23:15 ` David Mosberger
2004-01-16 6:52 ` Christian Hildner
0 siblings, 2 replies; 3+ messages in thread
From: Zoltan MENYHART @ 2004-01-15 22:31 UTC (permalink / raw)
To: linux-ia64
I guess most of my problems with "IA64_LOG_NEXT_BUFFER()",
"salinfo_log_wakeup()", the KDB, unwinding the interrupted CPU's stack,
etc. are related to the mapping of the addresses 0xe000... and 0xc000...
As far as I can see, when I touch such an address that is not mapped
by any TR or TC entry (the walker is off for these address ranges), then
the low level translation fault handler automatically inserts a new TC
entry that maps the address in the usual way.
Yet an alternate translation fault vector is used if the PSR.ic is off
(interrupts are disabled), and this handler does not map automatically
the addresses 0xe000... and 0xc000...
We are obliged to take locks and to disable interrupts, see e.g.
"IA64_LOG_NEXT_BUFFER()", the KDB.
Is it a VMM design issue not to allow automatic address mapping
if the PSR.ic is off ? Should not we revise it :-) ?
Zoltan Menyhart
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Mapping addresses 0xe000... and 0xc000...
2004-01-15 22:31 Mapping addresses 0xe000... and 0xc000 Zoltan MENYHART
@ 2004-01-15 23:15 ` David Mosberger
2004-01-16 6:52 ` Christian Hildner
1 sibling, 0 replies; 3+ messages in thread
From: David Mosberger @ 2004-01-15 23:15 UTC (permalink / raw)
To: linux-ia64
>>>>> On Thu, 15 Jan 2004 23:31:50 +0100, Zoltan MENYHART <Zoltan.Menyhart@m6net.fr> said:
Zoltan> Is it a VMM design issue not to allow automatic address
Zoltan> mapping if the PSR.ic is off ? Should not we revise it :-) ?
In general, you can't take a fault while PSR.ic is off. Please see
the Itanium system architecture for details (or any good kernel book
on ia64... ;-)
--david
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Mapping addresses 0xe000... and 0xc000...
2004-01-15 22:31 Mapping addresses 0xe000... and 0xc000 Zoltan MENYHART
2004-01-15 23:15 ` David Mosberger
@ 2004-01-16 6:52 ` Christian Hildner
1 sibling, 0 replies; 3+ messages in thread
From: Christian Hildner @ 2004-01-16 6:52 UTC (permalink / raw)
To: linux-ia64
Zoltan MENYHART schrieb:
> I guess most of my problems with "IA64_LOG_NEXT_BUFFER()",
> "salinfo_log_wakeup()", the KDB, unwinding the interrupted CPU's
> stack, etc. are related to the mapping of the addresses 0xe000... and
> 0xc000...
>
> As far as I can see, when I touch such an address that is not mapped
> by any TR or TC entry (the walker is off for these address ranges), then
> the low level translation fault handler automatically inserts a new TC
> entry that maps the address in the usual way.
>
> Yet an alternate translation fault vector is used if the PSR.ic is off
> (interrupts are disabled), and this handler does not map automatically
> the addresses 0xe000... and 0xc000...
It is the "data nested TLB vector" that comes into play if PSR.ic is off
and a TLB miss occurs. This fault is intentionally introduced to enable
software (OSes) to handle nested faults if they ran into a TLB miss
while doing low level fault handling. However when receiving that fault
you do not get any information about it like the faulting address, the
instruction address, ... . So software has to meet some conventions to
be able to handle that kind of nested faults.
> We are obliged to take locks and to disable interrupts, see e.g.
> "IA64_LOG_NEXT_BUFFER()", the KDB.
A solution might be the usage of some (free) TRs together with
superpages up to 256MB that will be installed before accessing that
memory locations. But be very carefully when doing that.
>
> Is it a VMM design issue not to allow automatic address mapping
> if the PSR.ic is off ? Should not we revise it :-) ?
I think it is just a strict RISC design.
> Zoltan Menyhart
Christian
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-01-16 6:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-15 22:31 Mapping addresses 0xe000... and 0xc000 Zoltan MENYHART
2004-01-15 23:15 ` David Mosberger
2004-01-16 6:52 ` Christian Hildner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox