[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#905568: linux-image-4.17.0-1-amd64: Enable CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE to prevent trashing cheap EFI flash storage chips



On Mon, Aug 06, 2018 at 11:41:56PM +0800, Ben Hutchings wrote:
> On Mon, 2018-08-06 at 10:51 +0100, Sam Morris wrote:
> > Package: src:linux
> > Version: 4.17.8-1
> > Severity: normal
> > 
> > fwupd is unable to update the firmware on my Lenovo P50.
> > 
> > lstat("/sys/firmware/efi/efivars/fwupd-ddc0ee61-e7f0-4e7d-acc5-c070a398838e-0-0abba7dc-e516-4167-bbf5-4d9d1c739416", {st_mode=S_IFREG|0644, st_size=230, ...}) = 0
> > openat(AT_FDCWD, "/sys/firmware/efi/efivars/fwupd-ddc0ee61-e7f0-4e7d-acc5-c070a398838e-0-0abba7dc-e516-4167-bbf5-4d9d1c739416", O_RDONLY) = 22
> > lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)
> > ioctl(22, FS_IOC_GETFLAGS, 0x7ffd48365c14) = 0
> > close(22)                               = 0
> > openat(AT_FDCWD, "/sys/firmware/efi/efivars/fwupd-ddc0ee61-e7f0-4e7d-acc5-c070a398838e-0-0abba7dc-e516-4167-bbf5-4d9d1c739416", O_WRONLY) = 22
> > lseek(22, 0, SEEK_CUR)                  = -1 ESPIPE (Illegal seek)
> > poll([{fd=22, events=POLLOUT}], 1, -1)  = 1 ([{fd=22, revents=POLLOUT}])
> > write(22, "\7\0\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 230) = -1 ENOSPC (No space left on device)
> > 
> > While searching for a solution I came across
> > <https://bugzilla.redhat.com/show_bug.cgi?id=919485>.[...]
> 
> That is from 2013.  The EFI variable support code was subsequently
> changed to work around common bugs in EFI implementations.  If you
> still don't want efi-pstore, you can put efi-pstore.pstore_disable=Y on
> the kernel command line.  But I don't think we're likely to change the
> default again.
> 
> Older messages logged to EFI variables will be deleted automatically.

Ok--I was being overly paranoid, thanks for the info. I was able to
remove the variables and after a couple of reboots fwupd was able to
create new variables again.

> However I notice that your report says:
> 
> [...]
> > ** Tainted: W (512)
> >  * Taint on warning.
> 
> If this warning, or warnings, are logged at every boot, that might mean
> that the variable space always gets filled up again before fwupd can
> run.
> 
> Can you look back through the system log (dmesg or /var/log/messages)
> to find the warning message?  We would need to see everything from
> "WARNING" down to "end trace".

Yeah, I get a *lot* of these:

    Jul 11 20:54:26 kernel: WARNING: CPU: 1 PID: 25085 at /build/linux-w6OyHc/linux-4.17.3/drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h:170 nouveau_dp_detect+0x9b/0x360 [nouveau]
    Jul 11 20:54:26 kernel: Modules linked in: tcp_diag inet_diag cpuid nls_ascii nls_cp437 vfat fat rfcomm fuse nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo xt_addrtype xt_conntrack devlink br_netfilter ebtable_filter ebtables overlay 
    Jul 11 20:54:26 kernel:  snd_hda_intel iwlwifi snd_usb_audio libahci videobuf2_vmalloc snd_hda_codec pcspkr psmouse efivars videobuf2_memops videobuf2_v4l2 snd_usbmidi_lib snd_hda_core snd_rawmidi videobuf2_common snd_seq_device snd_hwdep
    Jul 11 20:54:26 kernel:  nvme mxm_wmi i915 aesni_intel aes_x86_64 ttm i2c_algo_bit crypto_simd xhci_pci drm_kms_helper xhci_hcd cryptd glue_helper nvme_core evdev serio_raw usbcore drm usb_common shpchp thermal wmi video button
    Jul 11 20:54:26 kernel: CPU: 1 PID: 25085 Comm: Xorg Tainted: G        W         4.17.0-1-amd64 #1 Debian 4.17.3-1
    Jul 11 20:54:26 kernel: Hardware name: LENOVO 20EQA063UK/20EQA063UK, BIOS N1EET77W (1.50 ) 03/28/2018
    Jul 11 20:54:26 kernel: RIP: 0010:nouveau_dp_detect+0x9b/0x360 [nouveau]
    Jul 11 20:54:26 kernel: RSP: 0018:ffffb7a403c97ac0 EFLAGS: 00010293
    Jul 11 20:54:26 kernel: RAX: 0000000000000000 RBX: ffff8c45b4b3d200 RCX: 0000000000000000
    Jul 11 20:54:26 kernel: RDX: ffffb7a40600e584 RSI: ffffb7a40600e584 RDI: 0000000001009007
    Jul 11 20:54:26 kernel: RBP: ffff8c45b3d9c000 R08: ffffb7a403c97ad0 R09: ffffb7a403c97aca
    Jul 11 20:54:26 kernel: R10: 0000000000000000 R11: 0000000000000010 R12: ffff8c45b3d99000
    Jul 11 20:54:26 kernel: R13: ffff8c45b3aae000 R14: ffff8c45ba354340 R15: ffff8c45b4b3d218
    Jul 11 20:54:26 kernel: FS:  00007f5a932336c0(0000) GS:ffff8c45df440000(0000) knlGS:0000000000000000
    Jul 11 20:54:26 kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    Jul 11 20:54:26 kernel: CR2: 00007ffb7104a000 CR3: 0000000879dda001 CR4: 00000000003606e0
    Jul 11 20:54:26 kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    Jul 11 20:54:26 kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Jul 11 20:54:26 kernel: Call Trace:
    Jul 11 20:54:26 kernel:  ? _cond_resched+0x15/0x40
    Jul 11 20:54:26 kernel:  nouveau_connector_detect+0x2ea/0x4f0 [nouveau]
    Jul 11 20:54:26 kernel:  ? drm_modeset_lock+0x40/0xf0 [drm]
    Jul 11 20:54:26 kernel:  ? drm_modeset_lock+0x40/0xf0 [drm]
    Jul 11 20:54:26 kernel:  ? drm_helper_probe_single_connector_modes+0xd1/0x6c0 [drm_kms_helper]
    Jul 11 20:54:26 kernel:  drm_helper_probe_single_connector_modes+0xd1/0x6c0 [drm_kms_helper]
    Jul 11 20:54:26 kernel:  ? __slab_free+0x15a/0x300
    Jul 11 20:54:26 kernel:  drm_mode_getconnector+0x156/0x320 [drm]
    Jul 11 20:54:26 kernel:  ? drm_mode_connector_property_set_ioctl+0x60/0x60 [drm]
    Jul 11 20:54:26 kernel:  drm_ioctl_kernel+0x5b/0xb0 [drm]
    Jul 11 20:54:26 kernel:  drm_ioctl+0x2c3/0x360 [drm]
    Jul 11 20:54:26 kernel:  ? drm_mode_connector_property_set_ioctl+0x60/0x60 [drm]
    Jul 11 20:54:26 kernel:  nouveau_drm_ioctl+0x64/0xc0 [nouveau]
    Jul 11 20:54:26 kernel:  do_vfs_ioctl+0xa4/0x630
    Jul 11 20:54:26 kernel:  ? _crng_backtrack_protect+0x32/0x70
    Jul 11 20:54:26 kernel:  ? memzero_explicit+0xa/0x10
    Jul 11 20:54:26 kernel:  ? urandom_read+0x110/0x260
    Jul 11 20:54:26 kernel:  ksys_ioctl+0x70/0x80
    Jul 11 20:54:26 kernel:  __x64_sys_ioctl+0x16/0x20
    Jul 11 20:54:26 kernel:  do_syscall_64+0x55/0x110
    Jul 11 20:54:26 kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    Jul 11 20:54:26 kernel: RIP: 0033:0x7f5a9089ff07
    Jul 11 20:54:26 kernel: RSP: 002b:00007ffd73377e38 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    Jul 11 20:54:26 kernel: RAX: ffffffffffffffda RBX: 00005583db834c90 RCX: 00007f5a9089ff07
    Jul 11 20:54:26 kernel: RDX: 00007ffd73377e70 RSI: 00000000c05064a7 RDI: 000000000000000c
    Jul 11 20:54:26 kernel: RBP: 00007ffd73377e70 R08: 00005583e0d99d60 R09: 0000000000000000
    Jul 11 20:54:26 kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 00000000c05064a7
    Jul 11 20:54:26 kernel: R13: 000000000000000c R14: 000000000000000c R15: 00007ffd73377e70
    Jul 11 20:54:26 kernel: Code: 4c 24 0a 4c 8d 44 24 10 31 c9 ba 09 00 00 00 be 01 00 00 00 48 89 ef e8 c4 c1 f7 ff 85 c0 0f 85 8f 00 00 00 80 7c 24 0a 08 74 02 <0f> 0b 48 89 ef e8 9b bf f7 ff 44 0f b6 44 24 11 0f b6 4c 24 12 
    Jul 11 20:54:26 kernel: ---[ end trace 7a1b1ab6b92d73f3 ]---
    Jul 11 20:54:26 kernel: nouveau 0000:01:00.0: DRM: DDC responded, but no EDID for DP-2

According to grep, about 5000 a month. I've reported that issue separately
<https://bugs.freedesktop.org/show_bug.cgi?id=107167>.

Thanks again :)

-- 
Sam Morris <https://robots.org.uk/>
CAAA AA1A CA69 A83A 892B  1855 D20B 4202 5CDA 27B9


Reply to: