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