On Sat, Feb 26, 2011 at 10:55 PM, Niels Mayer <[email protected]> wrote:
> For example in meego-netbook-ia32-1.1.90.4.20110222.2.img,  in
>  /lib/modules/2.6.37-7.28/kernel/sound, the following are missing:
> snd-hrtimer.ko  snd.ko   snd-pcm.ko   snd-timer.ko  snd-hwdep.ko
> snd-page-alloc.ko

SInce I posted my message, I noticed that hrtimer seems to be enabled
in the kernel, but not for ALSA (due to missing snd-hrtimer)

Mar  1 22:12:50 meegolem klogd: [    0.550432] Marking TSC unstable
due to TSC halts in idle states deeper than C2
Mar  1 22:12:50 meegolem klogd: [    0.550828] Switching to
clocksource hpet

I also see scary messages related to HPET or hrtimer whenever the
kernel&networking borks: (
https://bugs.meego.com/attachment.cgi?id=4719 )
................
Mar  2 06:59:25 localhost carrick-connection-panel[613]: GLIB WARNING
** default - Error when ending call: Input/output error
Mar  2 06:59:30 localhost connmand[516]: Skipping disconnect of
6e706d_managed_psk
Mar  2 06:59:31 localhost connmand[516]: connect_callback
Mar  2 06:59:32 localhost carrick-connection-panel[613]: GLIB WARNING
** default - Error when ending call: Input/output error
Mar  2 06:59:34 localhost connmand[516]: Skipping disconnect of
6e706d_managed_psk
Mar  2 06:59:34 localhost connmand[516]: connect_callback
Mar  2 06:59:36 localhost klogd: [  125.015098] CE: hpet increased
min_delta_ns to 20113 nsec
..................

after a while (esp. if you pound on the wired
networkattempting/failing to transfer gigabytes of files --
https://bugs.meego.com/show_bug.cgi?id=13780 ) , you can get it really
confused
and starts outputting as below -- and you always see hrtimer in the
stack trace....
e.g.  ktime_get-> clockevents_program_event -> lapic_next_event -> __run_hrtimer

Mar  1 10:08:25 meegolem klogd: [  464.194511] stack backtrace:
Mar  1 10:08:25 meegolem klogd: [  464.194522] Pid: 461, comm:
gpk-update-icon Tainted: G        W   2.6.37-7.28 #1
Mar  1 10:08:25 meegolem klogd: [  464.194531] Call Trace:
Mar  1 10:08:25 meegolem klogd: [  464.194547]  [<c151029d>] ?
printk+0xf/0x11
Mar  1 10:08:25 meegolem klogd: [  464.194564]  [<c1060332>]
check_deadlock.clone.13+0x1b7/0x1d5
Mar  1 10:08:25 meegolem klogd: [  464.194580]  [<c10616db>]
validate_chain.clone.14+0x4fd/0x509
Mar  1 10:08:25 meegolem klogd: [  464.194594]  [<c1062553>]
__lock_acquire+0x668/0x6d0
Mar  1 10:08:25 meegolem klogd: [  464.194607]  [<c106324c>] ?
trace_hardirqs_on+0xb/0xd
Mar  1 10:08:25 meegolem klogd: [  464.194622]  [<c1187c0f>] ?
btrfs_try_spin_lock+0x1b/0x6a
Mar  1 10:08:25 meegolem klogd: [  464.194635]  [<c1062b0e>]
lock_acquire+0xfb/0x137
Mar  1 10:08:25 meegolem klogd: [  464.194649]  [<c1187c0f>] ?
btrfs_try_spin_lock+0x1b/0x6a
Mar  1 10:08:25 meegolem klogd: [  464.194663]  [<c151298a>]
_raw_spin_lock+0x25/0x34
Mar  1 10:08:25 meegolem klogd: [  464.194676]  [<c1187c0f>] ?
btrfs_try_spin_lock+0x1b/0x6a
Mar  1 10:08:25 meegolem klogd: [  464.194690]  [<c1187c0f>]
btrfs_try_spin_lock+0x1b/0x6a
Mar  1 10:08:25 meegolem klogd: [  464.194704]  [<c1149903>]
btrfs_search_slot+0x39f/0x497
Mar  1 10:08:25 meegolem klogd: [  464.194721]  [<c1159c4e>]
btrfs_lookup_inode+0x29/0x87
Mar  1 10:08:25 meegolem klogd: [  464.194736]  [<c10c46c6>] ?
kmem_cache_alloc+0xba/0x1a5
Mar  1 10:08:25 meegolem klogd: [  464.194749]  [<c1144bb5>] ?
btrfs_alloc_path+0x12/0x1f
Mar  1 10:08:25 meegolem klogd: [  464.194763]  [<c11630ee>]
btrfs_read_locked_inode+0x55/0x368
Mar  1 10:08:25 meegolem klogd: [  464.194776]  [<c116034a>] ?
btrfs_find_actor+0x0/0x27
Mar  1 10:08:25 meegolem klogd: [  464.194792]  [<c1168b4f>]
btrfs_iget+0x5c/0x8a
Mar  1 10:08:25 meegolem klogd: [  464.194806]  [<c1168e23>]
btrfs_lookup_dentry+0x74/0x1dd
Mar  1 10:08:25 meegolem klogd: [  464.194819]  [<c1168f97>]
btrfs_lookup+0xb/0x1c
Mar  1 10:08:25 meegolem klogd: [  464.194832]  [<c10d3477>]
d_alloc_and_lookup+0x39/0x57
Mar  1 10:08:25 meegolem klogd: [  464.194843]  [<c10d3532>]
do_lookup+0x9d/0xfa
Mar  1 10:08:25 meegolem klogd: [  464.194856]  [<c10d4aaa>]
link_path_walk+0x4c3/0x85d
Mar  1 10:08:25 meegolem klogd: [  464.194870]  [<c10d4f09>]
path_walk+0x3b/0x86
Mar  1 10:08:25 meegolem klogd: [  464.194883]  [<c10d4fd5>]
do_path_lookup+0x21/0x42
Mar  1 10:08:25 meegolem klogd: [  464.194896]  [<c10d528d>]
user_path_at+0x39/0x63
Mar  1 10:08:25 meegolem klogd: [  464.194911]  [<c1053f0a>] ?
__run_hrtimer+0x231/0x2ca
Mar  1 10:08:25 meegolem klogd: [  464.194926]  [<c1017ef3>] ?
lapic_next_event+0x16/0x1a
Mar  1 10:08:25 meegolem klogd: [  464.194940]  [<c105c7fb>] ?
clockevents_program_event+0xc3/0xd5
Mar  1 10:08:25 meegolem klogd: [  464.194953]  [<c105952d>] ?
ktime_get+0x5f/0xcc
Mar  1 10:08:25 meegolem klogd: [  464.194965]  [<c10cee66>]
vfs_fstatat+0x2e/0x55
Mar  1 10:08:25 meegolem klogd: [  464.194978]  [<c105d51c>] ?
tick_dev_program_event+0x24/0x104
Mar  1 10:08:25 meegolem klogd: [  464.194991]  [<c10ceeb8>]
vfs_stat+0x13/0x15
Mar  1 10:08:25 meegolem klogd: [  464.195003]  [<c10cf05a>]
sys_stat64+0x12/0x23
Mar  1 10:08:25 meegolem klogd: [  464.195015]  [<c1054c37>] ?
hrtimer_interrupt+0x121/0x1d2
Mar  1 10:08:25 meegolem klogd: [  464.195019]  [<c105f4cb>] ?
trace_hardirqs_off+0xb/0xd
Mar  1 10:08:25 meegolem klogd: [  464.195019]  [<c10029c3>] ?
sysenter_exit+0xf/0x18
Mar  1 10:08:25 meegolem klogd: [  464.195019]  [<c1063220>] ?
trace_hardirqs_on_caller+0xfb/0x11c
Mar  1 10:08:25 meegolem klogd: [  464.195019]  [<c11ce0b0>] ?
trace_hardirqs_on_thunk+0xc/0x10
Mar  1 10:08:25 meegolem klogd: [  464.195019]  [<c1002990>]
sysenter_do_call+0x12/0x36
................................

As a user, the lack of snd-hrtimer places the netbook's ALSA timing
accuracy back in the last century -- 1000 uS ... versus 0.001us if
using hrtimer:

meegolem-87-~> qtractor &
meegolem-89-~> cat /proc/asound/seq/timer
Timer for queue 0 : system timer
  Period time : 0.000000000
  Skew : 65536 / 65536
meegolem-90-~>   cat /proc/asound/timers
G0: system timer : 1000.000us (10000000 ticks)
  Client sequencer queue 0 : stopped
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE

Meanwhile on Fedora, with the following modules loaded:
snd_hrtimer             1905  2
snd_timer              19723  3 snd_seq,snd_hrtimer,snd_pcm

Modern timing accuracy is available:

gnulem-105-~> qtractor&
gnulem-106-~> cat /proc/asound/seq/timer
Timer for queue 0 : HR timer
  Period time : 0.001000000
  Skew : 65536 / 65536
Timer for queue 1 : HR timer
  Period time : 0.000000000
  Skew : 65536 / 65536
gnulem-107-~> cat /proc/asound/timers
G0: system timer : 1000.000us (10000000 ticks)
G3: HR timer : 0.001us (1000000000 ticks)
  Client sequencer queue 0 : running
  Client sequencer queue 1 : stopped
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE
P1-0-0: PCM playback 1-0-0 : SLAVE
P1-0-1: PCM capture 1-0-1 : SLAVE
P1-0-2: PCM playback 1-0-2 : SLAVE
P1-0-3: PCM capture 1-0-3 : SLAVE
P1-1-0: PCM playback 1-1-0 : SLAVE
P2-0-0: PCM playback 2-0-0 : SLAVE
P2-0-1: PCM capture 2-0-1 : SLAVE
P4-0-0: PCM playback 4-0-0 : SLAVE
P4-0-1: PCM capture 4-0-1 : SLAVE

-- Niels
http://nielsmayer.com
_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to