August 2011 Archives

日常的に Vine マシンとして使っている MacBook Early 2008 の後釜として、MacBook Air Middle 2011 を購入。現時点で Vine が MBA 上でどの程度動くか動かないか、とりあえず現状を確認しました。で、安定するまで当分は OS X 上の VirtualBox に Vine 環境を移そうか、と考えています。

Bought a MacBook Air (Middle 2011) - 11inch, US Keyboard, 4GB Memory, 128GB SSD and Core i7 - to replace my MacBook (Early 2008) that has served me very hard as a Vine Linux development environment as a daily basis for a few years.

[MacBook Air Mid 2011 11-inch]

To be honest, I always have used my whity MacBook with Vine - Mac OS X is always there on the harddrive in a separated partition, but I seldom booted it up on my MacBook - maybe once or twice a year? Another OSX machine at home, an old PowerMac G4 MDD, is still there and serving me as a daily basis as well, to store my huge digital music contents (almost all in lossless format) on iTunes (still hundreds of CDs left to get ripped though), and as a scanning machine (connected to the old SCSI A3 flatbed scanner).

The first thing I did on my new toy was to play around the new OS for a while that amazed me a bit. This was the first time for me to play with the multi-touch trackpad and gestures. I felt Gestures and "Mission Control" are really great for portable computers with small screens like this MBA 11inch.

And the next thing I gonna do was, of course, to figure out how well this brand new machine is supported on Linux - I know there are so much to get done on the Linux kernel, the X thing, and some userland utilities, to run Linux on the MBA 2011 flawlessly, but I just thought it was worth checking out and playing around.

[MacBook Air Mid 2011 11-inch vs MacBook Early 2008]

On my environment (VineSeed/Vine Linux 6 on MacBook Early 2008), the system always crashes with a kernel panic when trying to shut the system down like this:

panic occurred, switching back to text console
BUG: scheduling while atomic: swapper/0/0x10010000
Modules linked in: sit tunnel4 rfcomm sco bnep l2cap vboxnetadp vboxnetflt vboxdrv autofs4 sunrpc
ipv6 acpi_cpufreq freq_table mperf dm_mirror dm_region_hash dm_log dm_mod uinput snd_hda_codec_realtek
snd_hda_intel lib80211_crypt_tkip snd_hda_codec wl(P) snd_hwdep uvcvideo btusb snd_seq_dummy
snd_seq_oss snd_seq_midi_event snd_seq videodev bluetooth ohci1394 v4l1_compat snd_seq_device
applesmc snd_pcm_oss snd_pcm hwmon rfkill lib80211 ieee1394 led_class snd_timer snd firewire_ohci
soundcore firewire_core i2c_i801 snd_page_alloc sky2 input_polldev mbp_nvidia_bl pcspkr crc_itu_t
joydev iTCO_wdt iTCO_vendor_support appletouch processor battery thermal ac ata_generic pata_acpi
uhci_hcd ohci_hcd ehci_hcd i915 dkms_kms_helper drm i2c_algo_bit button i2c_core video output
[last unloaded: cpufreq_ondemand]
Pid: 0, comm: swapper Tainted: P       D     2.6.35-20vl6 #1
Call Trace:
[<c102d3a6>] __schedule_bug+0x1/0x56
[<c1359495>] schedule+0x83/0x4b9
[<f7d7b78e>] ? drm_crtc_helper_set_config+0x84/0x65b [drm_kms_helper]
[<c135999d>] _cond_resched+0x2e/0x47
[<c10c8b80>] __kmalloc+0xa8/0x145
[<f7d7b78e>] drm_crtc_helper_set_config+0x94/0x65b [drm_kms_helper]
[<c1005e37>] ?show_trace_log_lvl+0x39/0x43
[<f7d7aae8>] drm_fb_helper_force_kernel_mode+0x2b/0x5b [drm_kms_helper]
[<f7d7ab62>] drm_fb_helper_panic+0x17/0x1d [drm_kms_helper]
[<c104b6c3>] notifier_call_chain+0x14/0x16
[<c1359289>] atomic_notifier_call_chain+0x14/0x16
[<c1359289>] panic+0x73/0xbc
[<c1005c17>] oops_end+0x7a/0x88
[<c102088f>] no_context+0x115/0x11f
[<c102098a>] __bad_area_nosemaphore+0xf1/0xf9
[<c1020af0>] ? do_page_fault+0x0/0x2eb
[<c10209a4>] bad_area_nosemaphore+0x12/0x15
[<c1020c32>] d0_page_fault+0x142/0x2eb
[<c10080fd>] ?sched_clock+0x9/0xd
[<c104bfb3>] ?sched_clock_local+0x17/0x11e
[<c1020af0>] ?do_page_fault_0x0/0x2eb
[<c135b9b6>] error_code+0x66/0x6c
[<c104007b>] ? ignore_signals+0x21/0x27
[<c1020af0>] ?do_page_fault+0x0/0x2eb
[<f91a3e0d>] ?rtMpNotificationLinuxOnCurrentCPU+0xa/0x9d [vboxdrv]
[<f91a3a51>] rtmpLinuxWrapper+0x22/0x27 [vboxdrv]
[<c10572e7>] generic_smp_call_function_single_interrupt+0xa0/0xba
[<c1017e29>] smp_call_function_single_interrupt+0xa0/0xba
[<c135b546>] call_function_single_interuupt+0x2a/0x30
[<c104007b>] ? ignore_signals+0x21/0x27
[<f86fa1ea>] ? acpi_idle_enter_bm+0x24d/0x289 [processor]
[<c12b7475>] cpuidle_idle_call+0x73/0xce
[<c10023a3>] cpu_idle+0x4e/0x67
[<c1357280>] start_secondary+0x1a8/0x1ad

I'd been looking for the solution to the issue, and finally I found this was it:

The fix itself was very trivial:

--- src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 73209)
+++ src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c	(revision 73210)
@@ -77,7 +77,7 @@
  * @param pvUser2           The notification event.
  * @remarks This can be invoked in interrupt context.
-static void rtMpNotificationLinuxOnCurrentCpu(RTCPUID idCpu, void *pvUser1, void *pvUser2)
+static DECLCALLBACK(void) rtMpNotificationLinuxOnCurrentCpu(RTCPUID idCpu, void *pvUser1, void *pvUser2)
     unsigned long ulNativeEvent = *(unsigned long *)pvUser2;

Now the fix has been included on VirtualBox-4.1.0-2vl7 (VineSeed).

Same fix for Vine Linux 6 (more precisely, packages for VinePlus/6) will be uploaded as 4.1.0-2vl6 as well shortly.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.23-en

About this Archive

This page is an archive of entries from August 2011 listed from newest to oldest.

July 2011 is the previous archive.

October 2011 is the next archive.

Find recent content on the main index or look in the archives to find all content.