[Bug 255072] boot (legacy): no progress beyond 'BIOS DRIVE D: is disk1'
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 23 Jan 2022 19:15:57 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255072 --- Comment #36 from spell@itl.ua --- Seems caught it. The crash occurs inside bd_edd_io(), wich calls BTX-owned int 31h which in turn calls BIOS-owned int 13h, and it comes this last int is the one who do fail. The matter why this is so difficult to catch it is it crashes randomly. With no obvious differences in environment it may succeed or crash, approximately 99/1. 11.2 loader crashes too, though very rarely. The rule is: more int 13h during loader run - more crash chance. By default 11.2 loader does not enter zfs probing stage and so requests only two or three int 13h per disk. With zfs probing (which is on by default in 12.3) the count of these requests is about a hundred, so the chance to crash is much bigger. Didn't try all the functions of int 13h but at least CMD_READ_LBA, CMD_READ_CHS and one of CMD_CHECK_EDD, CMD_EXT_PARAM lead to the crash. These are my tests that proof this statement: 12.3 loader: I've added for(i=0; i<100; i++) with identical bd_edd_io() calls right after the original bd_edd_io() call, and the crash occurs inside of this bunch of calls (every time on different i value). 11.2 loader: The same with bd_int13probe(). The loader crashes every time on this or that i value. -- You are receiving this mail because: You are the assignee for the bug.