linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <syrjala@sci.fi>
To: linux-fbdev-devel@lists.sourceforge.net
Cc: Vladimir Dergachev <volodya@mindspring.com>,
	Jon Smirl <jonsmirl@gmail.com>,
	DRI developer's list <dri-devel@lists.sourceforge.net>
Subject: Re: Re: waitforVBlank, how does this even work?
Date: Sat, 5 Mar 2005 08:30:31 +0200	[thread overview]
Message-ID: <20050305063031.GA5776@sci.fi> (raw)
In-Reply-To: <1109975700.5679.301.camel@gaston>

On Sat, Mar 05, 2005 at 09:35:00AM +1100, Benjamin Herrenschmidt wrote:
> On Fri, 2005-03-04 at 15:18 +0200, Ville Syrjälä wrote:
> > On Fri, Mar 04, 2005 at 09:08:27AM +1100, Benjamin Herrenschmidt wrote:
> > > 
> > > > > Oh, but I was not suggesting that. I just meant that interrupt handling 
> > > > > code is self-contained and can easily serve several consumers.
> > > > 
> > > > I'm with you here. And the same should IMHO hold for DMA handling. And for 
> > > > memory management of course.
> > > 
> > > DMA handling is the main piece of what the DRM does,
> > 
> > The actual bits that feed DMA buffers to the hardware are very small. And 
> > I just meant that like the IRQ code those need to be easily accessible 
> > from other components (fbdev, video capture module etc.)
> 
> "Feeding DMA buffers" in what sense ? The buffers are matches with
> various functions. For AGP buffers, you have to get into the whole
> allocation mecanism, pure PCI DMA isn't always possible on some hosts.

Allocating buffers should IMO belong to the memory management part.

If DMA isn't possible then I suppose the comammands/data would have to fed 
via MMIO. But that is a detail only the DMA component would have to know.

> Also, those buffers are what ? Data for blits ? textures ? they always
> belong to some sort of command, which we want to eventually validate in
> a way by the kernel unless you want your client to be root...

Usually the buffers are series of commands. And they don't need to 
validated when they come from the kernel. Validating buffers from 
userspace is done by the DRM.

> No, honestly, I don't see the point in breaking up our current DRM/fbdev
> thing.

From the userspace perspective nothing should change.


For the memory management I have some rough ideas but I'm not an expert 
here so let me know if I'm talking out of my ass...

The GART (be it AGP, PCI or some other mechanism) should be only used by 
the memory management part to dynamically map required bits of system RAM 
for the graphics hardware to access. Clients of the memory management 
system should only have to ask thing like "give me a buffer of size x with 
priority y". Those buffers could then exist in system or video memory and 
the memory manager could actaully dynamically move them around without the 
clients even knowing about it. At one point the buffer could be in video 
memory and in system memory the next. If the hardware can render to system 
RAM then it could be totally transparent to the user. With hardware that 
can't render to system RAM I suppose the best idea would be to always move 
the buffers to system RAM when software access is required. That way the 
software could lock the buffer for any period of time without disturbing 
the memory managers work.

-- 
Ville Syrjälä
syrjala@sci.fi
http://www.sci.fi/~syrjala/


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click

      reply	other threads:[~2005-03-05  6:30 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-02  5:50 waitforVBlank, how does this even work? Jon Smirl
2005-03-02  5:55 ` Jon Smirl
2005-03-02  7:10 ` Benjamin Herrenschmidt
2005-03-02  7:30   ` [Linux-fbdev-devel] " Ville Syrjälä
2005-03-02  7:53     ` Benjamin Herrenschmidt
2005-03-02 14:42       ` Torgeir Veimo
2005-03-02 16:32 ` Vladimir Dergachev
2005-03-02 17:09   ` Jon Smirl
2005-03-02 17:15     ` Vladimir Dergachev
2005-03-02 17:30       ` Jon Smirl
2005-03-02 17:45         ` Vladimir Dergachev
2005-03-02 17:51           ` Jon Smirl
2005-03-02 19:45             ` Vladimir Dergachev
2005-03-02 18:08           ` Eric Sellers
2005-03-02 19:06             ` Jon Smirl
2005-03-02 17:29   ` James Simmons
2005-03-02 22:38     ` Benjamin Herrenschmidt
2005-03-03  0:04       ` James Simmons
2005-03-02 23:42   ` Benjamin Herrenschmidt
2005-03-03  1:03     ` Vladimir Dergachev
2005-03-03  2:23       ` Benjamin Herrenschmidt
2005-03-03  3:01         ` Vladimir Dergachev
2005-03-03  7:55           ` Ville Syrjälä
2005-03-03 15:12             ` Vladimir Dergachev
2005-03-03 22:47               ` Benjamin Herrenschmidt
2005-03-03 22:08             ` Benjamin Herrenschmidt
2005-03-04 13:18               ` Ville Syrjälä
2005-03-04 22:35                 ` Benjamin Herrenschmidt
2005-03-05  6:30                   ` Ville Syrjälä [this message]

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=20050305063031.GA5776@sci.fi \
    --to=syrjala@sci.fi \
    --cc=dri-devel@lists.sourceforge.net \
    --cc=jonsmirl@gmail.com \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=volodya@mindspring.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;
as well as URLs for NNTP newsgroup(s).