Radeon driver in stable/9: changes in VM, atomic.h and iicbus

John Baldwin jhb at freebsd.org
Tue Feb 18 21:38:27 UTC 2014


On Monday, February 17, 2014 8:44:05 am Jean-Sébastien Pédron wrote:
> Hello!
> 
> I'm working on the merge of the Radeon KMS driver to stable/9, to help
> with a future merge of vt(9) and the activation of WITH_NEW_XORG by
> default in this branch.
> 
> Here's a first version of the merge:
> http://people.freebsd.org/~dumbbell/radeonkms/radeon-stable9.a.patch
> 
> However, the current driver relies on changes to other parts of the kernel:
> 
> == VM ==
> 
> In my first attempt, I merged the following revisions, which add
> vm_page_alloc_contig(), used by TTM:
>   - 226824
>   - 226848
>   - 226891
>   - 226928
>   - 227012
>   - 227072
>   - 227127
>   - 227568
> 
> Here's a shorter patch containing only the VM changes:
> http://people.freebsd.org/~dumbbell/radeonkms/radeon-stable9-vm.a.patch
> 
> I found the following API/ABI breakage:
>    o  kmem_alloc_contig()'s and vm_phys_alloc_contig()'s "boundary"
>       argument, going from unsigned long to vm_paddr_t.
>    o  vm_page_alloc_init() becoming a static function.
>    o  vm_phys_bootstrap_alloc() removed.
> 
> I don't know how to proceed with this. Should TTM use another function
> than vm_page_alloc_contig() to avoid the MFC? Or should the merge be
> modified so that "boundary" argument keeps its unsigned long type,
> vm_page_alloc_init() remains public and vm_phys_bootstrap_alloc() is not
> removed?

You can leave the boundary as unsigned long.  The other two functions are not
public APIs, so I think they are fine to change.

> == atomic.h ==
> 
> I merged the following revisions, which add new atomic operations for
> both amd64 and i386:
>   - 254610
>   - 254611
>   - 254617
>   - 254620
> 
> The merge was modified to not break the API/ABI. For instance, in the
> original commits, some operations were transformed from a real function
> to a macro using one of the new operation.
> 
> So here's shorter patch with only the changes to atomic.h:
> http://people.freebsd.org/~dumbbell/radeonkms/radeon-stable9-atomic.a.patch
> 
> Therefore, it only adds new code used by the Radeon driver, and I think
> it's safe. Opinions on that?

Looks fine.

> == iicbus ==
> 
> Revision 232365 was merged to add optional pre/post transfer methods to
> iicbb, used by the Radeon driver.
> 
> Again, here's a patch limited to iicbb changes:
> http://people.freebsd.org/~dumbbell/radeonkms/radeon-stable9-iic.a.patch
> 
> I think this merge is safe too, but I'm not confident enough :) Any
> thoughts?

This looks fine.

-- 
John Baldwin


More information about the freebsd-stable mailing list