[Bug 227116] CURRENT doesn't boot with integer divide fault in uma_startup_count

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Mar 31 15:59:08 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227116

--- Comment #13 from Daniel Kolesa <daniel at octaforge.org> ---
(In reply to Konstantin Belousov from comment #11)

That's amusing, I just came to the same conclusion by isolating the code into a
standalone .c program with stubbed out variables.

---
    /* Memory for the rest of startup zones, UMA and VM, ... */
    if (zsize > UMA_SLAB_SIZE) {
        printf("branch1\n");
        pages += (zones + vm_zones) *
            howmany(roundup2(zsize, UMA_BOOT_ALIGN), UMA_SLAB_SIZE);
    } else {
        printf("branch2\n");
        printf("roundup2 %d\n", roundup2(zsize, UMA_BOOT_ALIGN));
        pages += howmany(zones,
            UMA_SLAB_SPACE / roundup2(zsize, UMA_BOOT_ALIGN));
    }
---

---
$ ./foo                
KSIZE 304
ZSIZE 3984
UMA_SLAB_SIZE 4096
sizeof uma_slab 112
UMA_SLAB_SPACE 3984
branch2
roundup2 4000
zsh: floating point exception  ./foo
---

So yeah, indeed, this seems to be the source of error.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list