VirtualBox

Ticket #12638 (closed defect: fixed)

Opened 4 years ago

Last modified 3 years ago

VBOXADDITIONS_4.3.4_91027 does not compile in RHEL-7 beta

Reported by: tcamuso Owned by:
Priority: major Component: guest additions
Version: VirtualBox 4.3.6 Keywords:
Cc: Guest type: Linux
Host type: Linux

Description

As reported in the VBox forum at ...  https://forums.virtualbox.org/viewtopic.php?f=3&t=59094

In source file memobj-r0drv-linux.c starting at line 1536, and again at line 1542, the following test is made.

#  if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
                pTask->mm->numa_next_reset = jiffies + 0x7fffffffUL;
#  endif
                pTask->mm->numa_next_scan  = jiffies + 0x7fffffffUL;

This compile-time test was made to adapt to 3.13 kernel commit ...

commit 930aa174fcc8b0efaad102fd80f677b92f35eaa2
Author: Mel Gorman <mgorman@suse.de>
Date:   Mon Oct 7 11:29:37 2013 +0100

    sched/numa: Remove the numa_balancing_scan_period_reset sysctl

However, RHEL7 has backported this patch to its 3.10 kernel, so the result of compiling this file in VBoxGuest editions is ...

/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1542:26: error: ‘struct mm_struct’ has no member named ‘numa_next_reset’
                 pTask->mm->numa_next_reset = jiffies + 0x7fffffffffffffffUL;
                          ^
make[2]: *** [/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxguest] Error 2

Applying the following patch provided by forum user "spicysomtam" made the VBoxGuestAdditions compile successfully, but I don't know if this is what you really want to do.

--- a/vboxhost/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
+++ b/vboxhost/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
@@ -1533,14 +1533,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p
                 /** @todo Ugly hack! But right now we have no other means to disable
                  *        automatic NUMA page balancing. */
 # ifdef RT_OS_X86
-#  if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
-                pTask->mm->numa_next_reset = jiffies + 0x7fffffffUL;
-#  endif
                 pTask->mm->numa_next_scan  = jiffies + 0x7fffffffUL;
 # else
-#  if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
-                pTask->mm->numa_next_reset = jiffies + 0x7fffffffffffffffUL;
-#  endif
                 pTask->mm->numa_next_scan  = jiffies + 0x7fffffffffffffffUL;
 # endif
             }

Attachments

VBox-numa_no_reset.diff Download (1.5 KB) - added by Fate 4 years ago.
First version of a patch that explicitly handles distro backports

Change History

comment:1 Changed 4 years ago by tcamuso

Wait, that patch won't do for kernels < 3.13.

Let me see if I can come up with some thing better.

comment:2 Changed 4 years ago by tcamuso

Testing for KERNEL_VERSION is ineffective, since various distros may or may not have backported the changes to include/linux/mm_types.h for which this test was devised.

What needs to be done is for the VBoxLinuxAdditions.run script to grep for numa_next_scan in the kernel header, include/linux/mm_types.h. If grep returns status -eq 0 then configure the build to use numa_next_scan, else to use numa_next_reset.

Changed 4 years ago by Fate

First version of a patch that explicitly handles distro backports

comment:3 Changed 4 years ago by Fate

greping seems to be overkill, we had similar issues with vboxvideo_drm.c in 11984 where distros did backports as well. Attached patch adopts the aproach taken by michael there. Could need some extending to handle RHEL7, too, I guess.

comment:4 Changed 3 years ago by michel-slm

You can match on RHEL_VERSION = 7 to detect RHEL7.

(got here after getting hit by the same bug on RHEL 7 release candidate for workstations, and Google didn't bring up the issue in the bugtracker but instead this:  http://cathay4t.blogspot.com/2014/03/patch-for-vboxdrv-of-virtualbox-for.html )

comment:5 Changed 3 years ago by Shamino

Now that RHEL7 has been released and is no longer beta, getting this bug fixed has just become more important. It's one thing to take your time or decide not to support a beta. A proper release from a major distribution is something altogether different.

comment:6 Changed 3 years ago by NeilSmith

I can confirm this issue (change from numa_next_reset to numa_next_scan) is still present as at VBoxGuestAdditions 4.3.12 which I downloaded 2014-06-18

Unsurprisingly this prevents Centos 7 (beta from RHEL 7) using guest additions.

In addition, it was previously reported for Ubuntu at the same time, ca. 6 months ago :  https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1254803

Thanks to the info abouve, I may be able to get this to work - about to test.

As we're not clear on a patch which is definitely 'the right thing', please can we get the VBoxAdditions source verified and patched under these common OS ?

comment:7 Changed 3 years ago by frank

We now use RHEL_RELEASE_CODE. Here is a test build of the latest 4.3.x Additions.

comment:8 Changed 3 years ago by Zdenek Sedlak

I can confirm that the test build guest ISO is working. Tested CentOS 7 on VirtualBox 4.3.12.

comment:9 Changed 3 years ago by Heebr

Download location for the 4.3.12 Virtualbox Guest Additions:  http://download.virtualbox.org/virtualbox/4.3.12/VBoxGuestAdditions_4.3.12.iso

comment:10 Changed 3 years ago by hiroaki

Hi Heebr, I downloaded  http://download.virtualbox.org/virtualbox/4.3.12/VBoxGuestAdditions_4.3.12.iso but it turned out to be the same as the VBoxGuestAdditions_4.3.12.iso bundled in  http://download.virtualbox.org/virtualbox/4.3.12/VirtualBox-4.3.12-93733-OSX.dmg

% wget  http://download.virtualbox.org/virtualbox/4.3.12/VBoxGuestAdditions_4.3.12.iso

% shasum -a 256 VBoxGuestAdditions_4.3.12.iso c76dd5ec86f61ad72263ab6d2405723b06badfc2fae57f83ffa5de96f553400d VBoxGuestAdditions_4.3.12.iso

% shasum -a 256 /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso c76dd5ec86f61ad72263ab6d2405723b06badfc2fae57f83ffa5de96f553400d /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso

Can I download guest additions with this fix for VirtualBox 4.3.12?

comment:11 Changed 3 years ago by frank

Why don't you just download the build I posted in comment 7? Or use the Guest Additions from VBox 4.3.14 RC1.

comment:12 Changed 3 years ago by confoundation

I can also confirm that the .iso found within comment 7 works nicely on Scientific Linux 7 (another RHEL/CentOS clone).

comment:13 Changed 3 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in VBox 4.3.14.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use