Michel Dänzer wrote:
> On Son, 2002-09-22 at 19:18, Keith Whitwell wrote:
> 
>>Michel Dänzer wrote:
>>
>>>I currently get an oops on client shutdown when radeon_mem_release() is
>>>called on the agp_heap, which isn't initialized. Probably is in your local
>>>tree? :)
>>>
> 
> Ah, the RADEON_INIT_HEAP ioctl needs to be called for it to be
> initialized. Does the attached patch look reasonable to avoid the oops,
> or should the DRM rather initialize the heap on its own?

The drm should validate all userspace inputs to avoid oopses, I think.  So 
even if we do something stupid (current situation), the machine doesn't go down.

> 
> 
>>>I'd still appreciate feedback on the vbl IRQ patch... I'll work on
>>>adding a new flip ioctl which flips on the next vertical blank to
>>>hopefully get rid of tearing for good.
>>>
>>Sorry Michel, been caught up in my own stuff.
>>
>>The first qn I remember is that there seemed to be a fair bit more code in the 
>>irq tophalf -- is it possible to postpone this processing til the bh runs?
>>
> 
> Is that really a problem? There are only a couple vertical blank
> interrupts per second, so it shouldn't be much more than before.
> 
> On the other hand, I've been wondering if writing to
> RADEON_GEN_INT_STATUS from the IRQ service routine is safe. If that
> register goes through the FIFO (how to find out?), it should be written
> through the CP or we'd have to wait for it to go idle or at least check
> the number of free FIFO slots. Both of which would belong into the
> bottom half I guess.

I think we have to ask ati.  If the card is sanely designed, you'd expect that 
it *wouldn't* be.  You'd want the cpu to be able to write as quickly as 
possible to that register.

A lot of cards have interrupts that actually stop the cp (or equivalent) from 
processing.  It's not clear whether the radeon one does or not.

> 
> 
> 
> ------------------------------------------------------------------------
> 
> Index: radeon_mem.c
> ===================================================================
> RCS file: 
>/cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/Attic/radeon_mem.c,v
> retrieving revision 1.1.2.6
> diff -p -u -r1.1.2.6 radeon_mem.c
> --- radeon_mem.c      17 Sep 2002 13:16:46 -0000      1.1.2.6
> +++ radeon_mem.c      22 Sep 2002 22:03:22 -0000
> @@ -174,6 +174,9 @@ void radeon_mem_release( struct mem_bloc
>       int pid = DRM_CURRENTPID;
>       struct mem_block *p;
>  
> +     if (!heap)
> +         return;
> +
>       for (p = heap->next ; p != heap ; p = p->next) {
>               if (p->pid == pid) 
>                       p->pid = 0;
> 



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to