Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Sep 2025 15:09:38 +0000
From:      bugzilla-noreply@freebsd.org
To:        virtualization@FreeBSD.org
Subject:   [Bug 289471] bhyve ARM64 16 vCPU Limit
Message-ID:  <bug-289471-27103-iMN8FZ5bA4@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-289471-27103@https.bugs.freebsd.org/bugzilla/>
References:  <bug-289471-27103@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help

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

John Baldwin <jhb@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|New                         |Open
                 CC|                            |jhb@FreeBSD.org

--- Comment #1 from John Baldwin <jhb@FreeBSD.org> ---
It does not.  It uses the flexible array of pointers per guest.  However, it
defaults to being limited to the number of physical CPUs on the host the same
as on amd64.  There is a tunable to configure it in sys/arm64/vmm/vmm.c:

/*
 * Upper limit on vm_maxcpu. We could increase this to 28 bits, but this
 * is a safe value for now.
 */
#define VM_MAXCPU       MIN(0xffff - 1, CPU_SETSIZE)

...

static int
vmm_init(void)
{
        int error;

        vm_maxcpu = mp_ncpus;
        TUNABLE_INT_FETCH("hw.vmm.maxcpu", &vm_maxcpu);

        if (vm_maxcpu > VM_MAXCPU) {
                printf("vmm: vm_maxcpu clamped to %u\n", VM_MAXCPU);
                vm_maxcpu = VM_MAXCPU;
        }
        if (vm_maxcpu == 0)
                vm_maxcpu = 1;

        error = vmm_regs_init(&vmm_arch_regs, &vmm_arch_regs_masks);
        if (error != 0)
                return (error);

        return (vmmops_modinit(0));
}

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


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-289471-27103-iMN8FZ5bA4>