Bug 15705

Summary: R300 + KMS creating WARNING when running some OpenGL programs
Product: Platform Specific/Hardware Reporter: Chris Rankin (rankincj)
Component: x86-64Assignee: platform_x86_64 (platform_x86_64)
Status: RESOLVED OBSOLETE    
Severity: normal CC: akpm, alan, wferi
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.33.2 Subsystem:
Regression: No Bisected commit-id:

Description Chris Rankin 2010-04-06 22:44:20 UTC
This is the second time I've triggered this WARNING:

------------[ cut here ]------------
WARNING: at /home/chris/LINUX/linux-2.6.33/arch/x86/kernel/apic/ipi.c:109 default_send_IPI_mask_logical+0x2a/0xad()
Hardware name: Precision WorkStation 650    
empty IPI mask
Modules linked in: snd_seq_oss snd_seq_midi snd_seq_dummy fuse nfsd exportfs autofs4 nfs lockd auth_rpcgss sunrpc p4_clockmod speedstep_lib af_packet ipt_LOG xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_LOG nf_conntrack_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables x_tables ipv6 binfmt_misc dm_mirror dm_region_hash dm_log dm_mod uinput snd_emu10k1_synth snd_emux_synth snd_seq_virmidi snd_seq_midi_event snd_seq_midi_emul snd_emu10k1 snd_ac97_codec snd_usb_audio ac97_bus snd_seq snd_pcm joydev firewire_ohci usbhid snd_timer ppdev firewire_core uvcvideo snd_usb_lib snd_page_alloc psmouse snd_rawmidi snd_util_mem snd_seq_device parport_pc crc_itu_t snd_hwdep pcspkr serio_raw sg i2c_i801 snd videodev floppy v4l1_compat parport soundcore dcdbas ext3 jbd mbcache sr_mod cdrom sd_mod pata_acpi ata_piix sata_sil uhci_hcd libata scsi_mod e1000 ehci_hcd usbcore thermal button radeon intel_agp ttm drm_kms_helper drm agpgart i2c_algo_bit cfbcopyarea cfbimgblt 
cfbfillrect [last unloaded: processor]
Pid: 15, comm: events/0 Not tainted 2.6.33.2 #1
Call Trace:
[<c102559b>] ? warn_slowpath_common+0x5d/0x70
[<c10171d2>] ? __cpa_flush_range+0x0/0x24
[<c10255e1>] ? warn_slowpath_fmt+0x26/0x2a
[<c101274c>] ? default_send_IPI_mask_logical+0x2a/0xad
[<c10171d2>] ? __cpa_flush_range+0x0/0x24
[<c1011381>] ? native_send_call_func_ipi+0x4f/0x56
[<c1043aa0>] ? smp_call_function_many+0x161/0x17a
[<c10171d2>] ? __cpa_flush_range+0x0/0x24
[<c1043ae2>] ? smp_call_function+0x29/0x4f
[<c10171d2>] ? __cpa_flush_range+0x0/0x24
[<c10297f9>] ? on_each_cpu+0x23/0x50
[<c1017abe>] ? change_page_attr_set_clr+0x24a/0x2c6
[<c1017c86>] ? _set_memory_wb+0x17/0x1b
[<c1017c96>] ? set_memory_wb+0xc/0x31
[<f80bac75>] ? ttm_tt_set_caching+0x9d/0x1a5 [ttm]
[<f80bad9b>] ? ttm_tt_free_alloced_pages+0x1e/0x88 [ttm]
[<f80bb130>] ? ttm_tt_destroy+0x37/0x73 [ttm]
[<f80bb6e9>] ? ttm_bo_release_list+0x67/0x97 [ttm]
[<f80bb682>] ? ttm_bo_release_list+0x0/0x97 [ttm]
[<c10e5f5a>] ? kref_put+0x36/0x3e
[<f80bc31c>] ? ttm_bo_delayed_delete+0xab/0xb5 [ttm]
[<f80bc336>] ? ttm_bo_delayed_workqueue+0x10/0x23 [ttm]
[<c1032619>] ? worker_thread+0x114/0x19c
[<f80bc326>] ? ttm_bo_delayed_workqueue+0x0/0x23 [ttm]
[<c1035241>] ? autoremove_wake_function+0x0/0x29
[<c1032505>] ? worker_thread+0x0/0x19c
[<c1034f3f>] ? kthread+0x5f/0x64
[<c1034ee0>] ? kthread+0x0/0x64
[<c1002cb6>] ? kernel_thread_helper+0x6/0x10

This was with stock 2.6.33.2, and was almost certainly triggered by an OpenGL screensaver. The other time was triggered trying to capture a celestia screenshot using Gimp 2.6.

The hardware is an AGP Radeon 9550 (RV350) with Mesa from F12 and xorg-xf86-drv-ati from git.
Comment 1 Andrew Morton 2010-04-07 22:23:51 UTC
Thanks.  I'll reassign this to x86.  The ttm driver is simply calling set_memory_wb().  I see no way in which the ttm driver can cause an empty IPI mask all the way down in the APIC code.
Comment 2 Chris Rankin 2010-05-05 22:15:57 UTC
FYI, still present in 2.6.33.3. The oops looks identical.
Comment 3 Ferenc Wágner 2012-02-15 15:06:36 UTC
Bug 23042 is a very similar issue.
Bug 13933 (towards the end) contains some background info on this warning.
It looks like native_send_call_func_ipi() can still pass an empty mask to default_send_IPI_mask_logical() through ->send_IPI_mask().
I got the warning under 2.6.32, not sure if it's still possible under recent kernels.
Comment 4 Ferenc Wágner 2012-02-15 15:09:39 UTC
Er, sorry, I forgot to include the trace (arch i386, not x86-64):

> WARNING: at
> /build/buildd-linux-2.6_2.6.32-41-i386-0vD9OO/linux-2.6-2.6.32/debian/build/source_i386_none/arch/x86/kernel/apic/ipi.c:109
> default_send_IPI_mask_logical+0x28/0x80()
> Hardware name: PowerEdge 1850
> empty IPI mask
> Modules linked in: ip6table_raw ip6t_REJECT ip6t_LOG nf_conntrack_ipv6
> xt_NOTRACK iptable_raw xt_recent ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4
> xt_state xt_tcpudp ipt_LOG xt_limit xt_multiport ip6table_filter ip6_tables
> iptable_filter ip_tables x_tables 8021q garp stp bonding ext3 jbd mbcache
> nf_conntrack_tftp nf_conntrack ipmi_devintf ipmi_si ipmi_msghandler radeon
> ttm drm_kms_helper drm snd_pcm snd_timer snd soundcore snd_page_alloc
> i2c_algo_bit pcspkr dcdbas e752x_edac psmouse i2c_core video output evdev
> edac_core rocket rng_core shpchp serio_raw pci_hotplug button processor xfs
> exportfs dm_mod raid1 md_mod sd_mod crc_t10dif uhci_hcd sg sr_mod cdrom
> ata_generic ehci_hcd ata_piix libata mptspi mptscsih mptbase
> scsi_transport_spi floppy e1000 usbcore nls_base thermal thermal_sys scsi_mod
> [last unloaded: scsi_wait_scan]
> Pid: 23982, comm: nagios3 Not tainted 2.6.32-5-686 #1
> Call Trace:
>  [<c10309b9>] ? warn_slowpath_common+0x5e/0x8a
>  [<c1030a17>] ? warn_slowpath_fmt+0x26/0x2a
>  [<c1014afc>] ? default_send_IPI_mask_logical+0x28/0x80
>  [<c10134f2>] ? native_send_call_func_ipi+0x51/0x54
>  [<c105342c>] ? smp_call_function_many+0x18f/0x1a8
>  [<c108b29c>] ? drain_local_pages+0x0/0xb
>  [<c108b29c>] ? drain_local_pages+0x0/0xb
>  [<c105345e>] ? smp_call_function+0x19/0x1f
>  [<c103588b>] ? on_each_cpu+0xc/0x24
>  [<c108c888>] ? __alloc_pages_nodemask+0x36e/0x4d9
>  [<c109a9e6>] ? do_wp_page+0x3eb/0x727
>  [<c109c4ba>] ? handle_mm_fault+0x8db/0x959
>  [<c1270c90>] ? do_page_fault+0x2f1/0x307
>  [<c127099f>] ? do_page_fault+0x0/0x307
>  [<c126f1f3>] ? error_code+0x73/0x78