From: "Stephen C. Tweedie" <sct@redhat.com>
To: Marcus Sundberg <erammsu@kieraypc01.p.y.ki.era.ericsson.se>
Cc: "Stephen C. Tweedie" <sct@redhat.com>,
linux-mm@kvack.org, James Simmons <jsimmons@edgeglobal.com>
Subject: Re: accel handling
Date: Mon, 30 Aug 1999 15:18:05 +0100 (BST) [thread overview]
Message-ID: <14282.37533.98879.414300@dukat.scot.redhat.com> (raw)
In-Reply-To: <37CA73D8.E41F4F5@switchboard.ericsson.se>
Hi,
On Mon, 30 Aug 1999 14:06:48 +0200, Marcus Sundberg
<erammsu@kieraypc01.p.y.ki.era.ericsson.se> said:
> What I believe James is talking about here is allowing non-priviledged
> processes to access graphics hardware where the graphics card, or even
> the whole system, may enter an unrecoverable state if you try to access
> the frame buffer while the accel engine is active. (Yes there really
> exist such hardware...)
I know that. I know _why_ it is desirable to have hardware protection
of these memory regions. I also know why it is expensive to provide
that protection in the VM, and why in the SMP threaded case that cost
becomes a prohibitive overhead. That sucks, but that's life in the
crap-hardware PC world.
> To achieve this you really must physicly prevent the process to access
> the framebuffer while the accel engine is active. The question is what
> the best way to do this is (and if that way is good enough to bother
> doing it...) ?
The only way to do it is to flip page tables while the accel engine is
running. You may want to restore it on demand by trapping the page
fault on the framebuffer and stalling until the accel lock is released.
This can be done, but it is really expensive: you are doing a whole pile
of messy VM operations every time you want to trigger the accel engine
(any idea how often you want to flip the protection, btw?)
So you are talking several system calls, SMP inter-processor interrupts
and piles of VM page twiddling every time you want to claim and release
the core engine. Sorry, folks, but there's no way of avoiding the
conclusion that this is going to be expensive. In the single-CPU or
single-thread case the cost can be kept under control, but it is not
going to be cheap.
--Stephen
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/
next prev parent reply other threads:[~1999-08-30 14:18 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-08-29 14:52 James Simmons
1999-08-29 16:14 ` Stephen C. Tweedie
1999-08-30 1:14 ` James Simmons
1999-08-30 10:44 ` Stephen C. Tweedie
1999-08-30 12:06 ` Marcus Sundberg
1999-08-30 14:18 ` Stephen C. Tweedie [this message]
1999-08-30 14:50 ` James Simmons
1999-08-30 15:52 ` Stephen C. Tweedie
1999-08-30 17:51 ` James Simmons
1999-08-30 20:27 ` Stephen C. Tweedie
1999-08-31 0:28 ` Vladimir Dergachev
1999-08-31 10:55 ` Marcus Sundberg
1999-08-31 12:49 ` Stephen C. Tweedie
1999-08-31 17:10 ` James Simmons
1999-08-31 18:44 ` Stephen C. Tweedie
1999-08-30 14:31 ` James Simmons
1999-08-30 18:51 ` Eric W. Biederman
1999-08-30 19:18 ` James Simmons
1999-08-30 21:39 ` Andreas Beck
1999-08-30 20:36 ` Stephen C. Tweedie
1999-08-29 14:57 James Simmons
1999-08-31 3:39 Jens Owen
1999-08-31 12:51 ` Stephen C. Tweedie
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=14282.37533.98879.414300@dukat.scot.redhat.com \
--to=sct@redhat.com \
--cc=erammsu@kieraypc01.p.y.ki.era.ericsson.se \
--cc=jsimmons@edgeglobal.com \
--cc=linux-mm@kvack.org \
/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