Bug 862067 - Reboot fails on l502x (DELL XPS)
Summary: Reboot fails on l502x (DELL XPS)
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 17
Hardware: x86_64
OS: Linux
unspecified
low
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-10-01 18:51 UTC by DBV
Modified: 2012-11-30 20:39 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2012-11-30 20:39:01 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description DBV 2012-10-01 18:51:47 UTC
Description of problem:
System hangs on reboot. Not on suspend, hibernate or poweroff, only reboot.

Version-Release number of selected component (if applicable):
Happens on kernels >= 3.5.x

How reproducible:
Always

Steps to Reproduce:
1. reboot
  
Actual results:
Session shuts down, 
fedora logo animates, 
screen turns off
system hangs like this for hours (either with fans on, or fans off).
pressing poweroff often turns computer off instantly, but sometimes I must press it for 4 seconds.

Expected results:
Session shuts down, 
fedora logo animates, 
screen turns off
reboot

Additional info:
The system is a Dell XPS 15 l502x
Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz (SandyBridge).
Nvidia GTX 540M (Optimus).
Reboots fine with kernel 3.3.x

For logs give me the command lines for the desired output.

Daniel

Comment 1 DBV 2012-10-01 19:20:14 UTC
Hello!

Forgot to mention, I tried disabling virtualization in the BIOS and also tried all possibilities for the reboot=xxxx kernel flag but nothing worked. Again, reboot works fine with 3.3.x. I compared the daemons running in 3.3 and in 3.5 and I saw no difference.

Daniel

Comment 2 DBV 2012-10-11 22:06:51 UTC
Hello again,

Just to inform that it still doesn't work with 3.5.6-1.

However if I boot to init 3, login, and type "reboot", reboot works.


I did env, dmesg and lsmod at runlevel 3 and runlevel 5.
The env output shows no difference.

Main differences is lsmod and dmesg are bbswitch and various network related modules.

DMESG DIFF:
--- /home/panda/dmesg_rl_3.txt
+++ /home/panda/dmesg_rl_5.txt
@@ -1023,3 +1023,38 @@
 [   21.725752] wlan0: RX AssocResp from 6a:12:f8:a9:b9:50 (capab=0x411 status=0 aid=1)
 [   21.727903] wlan0: associated
 [   21.728817] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
+[  258.151607] wlan0: deauthenticating from 6a:12:f8:a9:b9:50 by local choice (reason=3)
+[  258.185883] cfg80211: Calling CRDA to update world regulatory domain
+[  258.195564] cfg80211: World regulatory domain updated:
+[  258.195566] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
+[  258.195567] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+[  258.195569] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
+[  258.195570] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
+[  258.195570] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+[  258.195571] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+[  258.195580] cfg80211: Calling CRDA for country: FR
+[  258.198995] cfg80211: Regulatory domain changed to country: FR
+[  258.198997] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
+[  258.198998] cfg80211:   (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
+[  258.198999] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)
+[  258.199000] cfg80211:   (5250000 KHz - 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm)
+[  258.199001] cfg80211:   (5490000 KHz - 5710000 KHz @ 40000 KHz), (N/A, 2700 mBm)
+[  258.828720] iwlwifi 0000:03:00.0: >L1 Enabled; Disabling L0S
+[  258.904426] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
+[  260.042442] wlan0: authenticate with 6a:12:f8:a9:b9:50
+[  260.062899] wlan0: send auth to 6a:12:f8:a9:b9:50 (try 1/3)
+[  260.064796] wlan0: authenticated
+[  260.065118] wlan0: associating with AP with corrupt beacon
+[  260.066835] wlan0: associate with 6a:12:f8:a9:b9:50 (try 1/3)
+[  260.075893] wlan0: RX AssocResp from 6a:12:f8:a9:b9:50 (capab=0x411 status=0 aid=1)
+[  260.078306] wlan0: associated
+[  260.079046] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
+[  265.719410] bbswitch: version 0.4.2
+[  265.719417] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0
+[  265.719425] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.PEGP
+[  265.719636] bbswitch: detected an Optimus _DSM function
+[  265.719641] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is on
+[  268.167923] bbswitch: disabling discrete graphics
+[  268.168319] bbswitch: Result of Optimus _DSM call: 11000059
+[  268.178774] pci 0000:01:00.0: >Refused to change power state, currently in D0
+[  268.228807] pci 0000:01:00.0: >power state changed by ACPI to D3


LSMOD DIFF:
--- /home/panda/lsmod_rl_3.txt
+++ /home/panda/lsmod_rl_5.txt
@@ -1,9 +1,10 @@
 Module                  Size  Used by
+bbswitch               13396  0 
 tun                    22891  0 
 lockd                  89250  0 
 sunrpc                255029  1 lockd
-bnep                   19584  2 
-bluetooth             298929  7 bnep
+bnep                   19584  0 
+bluetooth             298929  1 bnep
 ip6t_REJECT            12939  2 
 nf_conntrack_ipv6      14341  3 
 nf_defrag_ipv6         18177  1 nf_conntrack_ipv6
@@ -19,7 +20,7 @@
 arc4                   12529  2 
 iwlwifi               328157  0 
 mac80211              521833  1 iwlwifi
-snd_hda_intel          37587  0 
+snd_hda_intel          37587  2 
 wacom                  53354  0 
 snd_hda_codec         126728  3 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
 uvcvideo               76826  0 
@@ -39,11 +40,11 @@
 snd_seq                64844  0 
 snd_seq_device         14136  1 snd_seq
 snd_pcm                97292  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
-rfkill                 21384  4 cfg80211,bluetooth
+rfkill                 21384  3 cfg80211,bluetooth
 r8169                  61608  0 
 snd_page_alloc         18101  2 snd_pcm,snd_hda_intel
 snd_timer              28690  2 snd_pcm,snd_seq
-snd                    79242  9 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_hda_codec,snd_hda_intel,snd_seq_device
+snd                    79242  13 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_hda_codec,snd_hda_intel,snd_seq_device
 i2c_i801               17779  0 
 dcdbas                 14828  1 dell_laptop
 kvm                   412517  1 kvm_intel
@@ -57,7 +58,7 @@
 crc32c_intel           12901  0 
 ghash_clmulni_intel    13180  0 
 wmi                    18697  1 dell_wmi
-i915                  510861  1 
+i915                  510861  2 
 video                  18936  1 i915
 i2c_algo_bit           13257  1 i915
 drm_kms_helper         40253  1 i915


Concerning the network modules, only the user count changes. So I suspect bbswitch - which didn't cause issues on 3.3.

I tried removing bbswitch and rebooting but this failed (there was the "fedora off" animation, then black screen and hang, with the fans going crazy and having to press the power switch for 4 secs to turn off).

Where should I look at now?

Comment 3 DBV 2012-11-30 20:39:01 UTC
Ok, I got really tired of this so I decided to tackle the issue and after a few days of rebooting and log reading, I found out what was the issue:

It is a problem with bbswitch. On my L502x notebook, to reboot properly, the discrete GPU needs to be turned ON, AND bbswitch module must be removed or else the computer will hang.

Until this is fixed by bbswitch, I created a systemd service to do the job upon reboot.

The service script:
$ cat /etc/systemd/system/bbswitch-unload.service
[Unit]
Description=Turn on GPU and Unload BBSwitch for reboot

Before=reboot.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/etc/systemd/system/bbswitch-unload.sh

[Install]
WantedBy=reboot.target

And the shell script:
$ cat /etc/systemd/system/bbswitch-unload.sh
#! /usr/bin/sh

echo ON > /proc/acpi/bbswitch
modprobe -r bbswitch


Note You need to log in before you can comment on or make changes to this bug.