[freebsd] Upgrade 11 to 12

Slawa Olhovchenkov slw at zxy.spb.ru
Mon Mar 4 18:55:07 EET 2019


On Mon, Mar 04, 2019 at 11:43:11PM +0700, Eugene Grosbein wrote:

> 04.03.2019 23:20, Slawa Olhovchenkov пишет:
> 
> > это тот случай, когда лучше детали освежить.
> > 
> >> Пока ядерный модуль использует только задокументированное в манах KABI, всё должно быть нормально.
> >> Тем более, если модуль использует публичное KAPI и его можно пересобрать.
> >> Когда начинаются грязные хаки, то да - эксцессы неизбежны. 
> > 
> > а у нас что, есть полностью документированное KABI/KAPI?
> > ну т.е. формально все разделено на првиатное и публичное, про каждый
> > вызов/структуру можно сказать какое оно и все публичное
> > документированно?
> > 
> > я тебе больше скажу, оба-два модуля не напрямую лазали, а вызывали
> > vm_map_max(const struct vm_map *map). man vm_map_max существуетс с
> > 2003 года.
> > 
> > только вот незадача -- он описан static __inline и когда kib@ поменял
> > определение min_offset/max_offset то все нахрен сломалось.
> 
> Этого я не читал. Есть PR или хотя бы ссылка на листы?

https://lists.freebsd.org/pipermail/freebsd-stable/2018-March/088632.html

дальше по треду.
там будет номер проблемного коммита.
вот писал ли я про vm_map_max/vm_map_min в том треде -- я не помню.
но можешь сам погрепать:

/tmp/VirtualBox-5.2.8 # grep -r -e vm_map_max -e vm_map_min .
./src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c:    vm_offset_t MapAddress = vm_map_min(kernel_map);
./src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c:        && (    (vm_offset_t)pvFixed      < vm_map_min(pMap)
./src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c:            ||  (vm_offset_t)pvFixed + cb > vm_map_max(pMap)))
./src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c:                           : vm_map_min(pMap);
./src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c:    vm_offset_t  Addr = vm_map_min(kernel_map);

# grep -r -e vm_map_max -e vm_map_min NVIDIA-FreeBSD-x86_64-304.135/
NVIDIA-FreeBSD-x86_64-304.135/src/nvidia_subr.c:    virtual_address = vm_map_min(kernel_map);



More information about the freebsd mailing list