From: John Marvin <jsm@udlkern.fc.hp.com>
To: parisc-linux@thepuffingroup.com
Subject: [parisc-linux] Virtual mapping of IO cards
Date: Wed, 16 Feb 2000 08:25:17 -0700 (MST) [thread overview]
Message-ID: <200002161525.IAA14558@udlkern.fc.hp.com> (raw)
Note: I've changed the subject, because I think this issue is mostly
separate from the Linux syscall issue.
> An HPMC may be delayed, relative to the instruction that caused it. The
> worst case is that a context switch _could_ occur before the HPMC occurs
> (and yes, we did see this problem with our HP-UX and HP-RT VME systems
> when a VME time-out was long enough). This can make it more difficult to
> figure out what instruction was issued to cause the HPMC. The advantage
> of the page fault is that you know exactly what instruction caused the
> fault.
But this doesn't help make your case. You got the HPMC anyway because the
card failed to respond in time. The virtual mapping didn't help you.
Virtually mapping the card doesn't help with HPMC's caused by dma buffer
mismanagement (i.e. the card causes the HPMC while mastering the bus).
Drivers for memory mapped register only cards, i.e. cards without any
type of onboard memory (i.e. framebuffers, script memory, etc.) are
not very likely to ever run into a bug of this type, since register
pointers are usually set up once and never changed.
In my experience, the majority of HPMC's have been caused by VM errors.
Then comes the two cases mentioned above (card not responding, dma
errors). In my experience, the majority of driver page faults were caused
by memory references (i.e. mismanaging memory buffers), not IO space
references. I can't say I've ever seen a driver page fault bug (i.e. one
that would have HPMC'd in the current Linux implementation) that was
caused by the driver mismanaging a pointer to its virtually mapped card
space. That is my experience. YMMV.
What percentage of the bugs that are caused by a driver mismanaging a
pointer to its card space would be significantly helped by page faulting,
rather than HPMC'ing? Although an HPMC can be delayed, I've found in
the majority of the cases it was either right on, or one instruction off.
I'm not trying to argue against virtually mapping the card (although I
would be all for avoiding mapping a large graphics frame buffer in the
kernel address space). I just want to be sure we do it for the right
reasons.
John Marvin
jsm@fc.hp.com
next reply other threads:[~2000-02-16 16:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-02-16 15:25 John Marvin [this message]
2000-02-16 18:38 ` [parisc-linux] Virtual mapping of IO cards Grant Grundler
2000-02-17 18:49 ` Frank Rowand
2000-02-16 21:45 ` Frank Rowand
-- strict thread matches above, loose matches on Subject: below --
2000-02-17 14:37 John Marvin
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=200002161525.IAA14558@udlkern.fc.hp.com \
--to=jsm@udlkern.fc.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