[CFC/CFT] large changes in the loader(8) code

Jan Beich jbeich at tormail.org
Fri Jun 29 13:19:58 UTC 2012


Dimitry Andric <dim at FreeBSD.org> writes:

> On 2012-06-26 14:50, Andrey V. Elsukov wrote:
>
>> Some time ago i have started reading the code in the sys/boot.
>> Especially i'm interested in the partition tables handling.
>> I found several problems:
>> 1. There are several copies of the same code in the libi386/biosdisk.c
>> and common/disk.c, and partially libpc98/biosdisk.c.
>> 2. ZFS probing is very slow, because the ZFS code doesn't know how many
>> disks and partitions the system has:
>> 	http://www.freebsd.org/cgi/query-pr.cgi?pr=148296
>> 	http://www.freebsd.org/cgi/query-pr.cgi?pr=161897
>> 3. The GPT support doesn't check CRC and even doesn't know anything
>> about the secondary GPT header/table.
>> 
>> So, i have created the branch and committed the changes:
>> 	http://svnweb.freebsd.org/base/user/ae/bootcode/
>> The patch is here:
>> 	http://people.freebsd.org/~ae/boot.diff
>
> FWIW, I verified it compiles OK with clang, and especially boot2's size
> isn't increased at all.

Does it boot for you? Same if I build zfs.c with gcc -O0:

  FreeBSD/x86 ZFS enabled bootstrap loader, Revision 1.1
  (foo at bar, Tue Jun 26 18:52:52 UTC 2012)
  ZFS: can't find pool by guid
  ZFS: can't find pool by guid

  can't load 'kernel'

>
> It would be nice if you could check it with clang now and again, before
> you finally merge this project into head.


More information about the freebsd-current mailing list