Bug 86883 - Regression on Atom graphics ("black screen of death", EeePc 1015? Pineview only?): kernel BUG with 3.16.x
Summary: Regression on Atom graphics ("black screen of death", EeePc 1015? Pineview on...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL: http://bugs.debian.org/768027
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-30 21:57 UTC by Erich Schubert
Modified: 2017-07-24 22:50 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
3.16 kernel log with drm.debug=7 (79.85 KB, text/plain)
2014-12-01 20:48 UTC, Adam Cecile
no flags Details
dmesg with drm.debug=7 (64.22 KB, text/plain)
2014-12-12 17:50 UTC, Erich Schubert
no flags Details
The patch in https://freedesktop.org/patch/42259/ adapted to Debian Jessie's linux_3.16.7-ckt4-3 (2.56 KB, patch)
2015-02-14 21:27 UTC, Johannes W
no flags Details | Splinter Review

Description Erich Schubert 2014-11-30 21:57:50 UTC
On older EEE pcs (Intel Atom graphics) current kernels fail with a BUG_ON
in i915_gem_object_create_stolen_for_preallocated.

Kernel 3.14 is reported to be working okay.

Here is an example trace, with 3.16.3:

Sep 28 12:54:24 hostname kernel: ------------[ cut here ]------------
Sep 28 12:54:24 hostname kernel: kernel BUG at /build/linux-Lep8DD/linux-3.16.3/drivers/gpu/drm/i915/i915_gem_stolen.c:431!
Sep 28 12:54:24 hostname kernel: invalid opcode: 0000 [#1] SMP 
Sep 28 12:54:24 hostname kernel: Modules linked in: snd_hda_controller i915(+) shpchp snd_hda_codec i2c_i801 snd_hwdep drm_kms_helper psmouse evdev serio_raw snd_pcm_oss snd_mixer_oss snd_pcm drm lpc_ich mfd_core snd_timer snd soundcore wmi ac i2c_algo_bit i2c_core video battery sparse_keymap rfkill button acpi_cpufreq processor coretemp loop fuse autofs4 ext4 crc16 mbcache jbd2 sg sd_mod crc_t10dif crct10dif_generic crct10dif_common ahci libahci libata scsi_mod ehci_pci uhci_hcd ehci_hcd usbcore atl1c usb_common thermal thermal_sys
Sep 28 12:54:24 hostname kernel: CPU: 0 PID: 180 Comm: systemd-udevd Not tainted 3.16-2-686-pae #1 Debian 3.16.3-2
Sep 28 12:54:24 hostname kernel: Hardware name: ASUSTeK Computer INC. 1001P/1005P, BIOS 1202    06/23/2010
Sep 28 12:54:24 hostname kernel: task: f774b010 ti: f4094000 task.ti: f4094000
Sep 28 12:54:24 hostname kernel: EIP: 0060:[<f87e80db>] EFLAGS: 00010206 CPU: 0
Sep 28 12:54:24 hostname kernel: EIP is at i915_gem_object_create_stolen_for_preallocated+0x20b/0x280 [i915]
Sep 28 12:54:24 hostname kernel: EAX: f46f1c00 EBX: f2c5c150 ECX: 001d4c00 EDX: 001d4c00
Sep 28 12:54:24 hostname kernel: ESI: f2c58000 EDI: 001d4c00 EBP: f4095b60 ESP: f4095b38
Sep 28 12:54:24 hostname kernel:  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Sep 28 12:54:24 hostname kernel: CR0: 80050033 CR2: b6f431a8 CR3: 36e14000 CR4: 000007f0
Sep 28 12:54:24 hostname kernel: Stack:
Sep 28 12:54:24 hostname kernel:  f4095b4c 00000282 f2c58004 00000001 00000001 f46f1c00 001d4c00 f4481000
Sep 28 12:54:24 hostname kernel:  f46f1c00 f4095bd4 f4095be0 f881726b 00139000 00071024 f4095ba8 f87f0e4b
Sep 28 12:54:24 hostname kernel:  00000001 f46f1c00 f2c58000 f46f1de4 00000002 f46f1e00 00000000 00000000
Sep 28 12:54:24 hostname kernel: Call Trace:
Sep 28 12:54:24 hostname kernel:  [<f881726b>] ? intel_modeset_init+0x82b/0x1210 [i915]
Sep 28 12:54:24 hostname kernel:  [<f87f0e4b>] ? i915_enable_pipestat+0xab/0x120 [i915]
Sep 28 12:54:24 hostname kernel:  [<f8840995>] ? i915_driver_load+0xae5/0xed0 [i915]
Sep 28 12:54:24 hostname kernel:  [<f883dd10>] ? i915_switcheroo_set_state+0x90/0x90 [i915]
Sep 28 12:54:24 hostname kernel:  [<c137f4c0>] ? powercap_register_control_type+0x1c0/0x1c0
Sep 28 12:54:24 hostname kernel:  [<c1251150>] ? cleanup_uevent_env+0x10/0x10
Sep 28 12:54:24 hostname kernel:  [<c133a744>] ? get_device+0x14/0x30
Sep 28 12:54:24 hostname kernel:  [<c146e4cb>] ? klist_node_init+0x2b/0x40
Sep 28 12:54:24 hostname kernel:  [<c146e536>] ? klist_add_tail+0x16/0x30
Sep 28 12:54:24 hostname kernel:  [<c133baf6>] ? device_add+0x1d6/0x5a0
Sep 28 12:54:24 hostname kernel:  [<f86255ae>] ? drm_dev_register+0x8e/0xe0 [drm]
Sep 28 12:54:24 hostname kernel:  [<f8627b79>] ? drm_get_pci_dev+0x79/0x1c0 [drm]
Sep 28 12:54:24 hostname kernel:  [<c128482f>] ? pci_device_probe+0x6f/0xc0
Sep 28 12:54:24 hostname kernel:  [<c11ca275>] ? sysfs_create_link+0x25/0x40
Sep 28 12:54:24 hostname kernel:  [<c133e583>] ? driver_probe_device+0x93/0x3a0
Sep 28 12:54:24 hostname kernel:  [<c11c9fa7>] ? sysfs_create_dir_ns+0x37/0x80
Sep 28 12:54:24 hostname kernel:  [<c1284771>] ? pci_match_device+0xc1/0xe0
Sep 28 12:54:24 hostname kernel:  [<c133e941>] ? __driver_attach+0x71/0x80
Sep 28 12:54:24 hostname kernel:  [<c133e8d0>] ? __device_attach+0x40/0x40
Sep 28 12:54:24 hostname kernel:  [<c133ca57>] ? bus_for_each_dev+0x47/0x80
Sep 28 12:54:24 hostname kernel:  [<c133e08e>] ? driver_attach+0x1e/0x20
Sep 28 12:54:24 hostname kernel:  [<c133e8d0>] ? __device_attach+0x40/0x40
Sep 28 12:54:24 hostname kernel:  [<c133dce7>] ? bus_add_driver+0x157/0x230
Sep 28 12:54:24 hostname kernel:  [<f887e000>] ? 0xf887dfff
Sep 28 12:54:24 hostname kernel:  [<c133f009>] ? driver_register+0x59/0xe0
Sep 28 12:54:24 hostname kernel:  [<c1002132>] ? do_one_initcall+0xc2/0x1f0
Sep 28 12:54:24 hostname kernel:  [<f887e000>] ? 0xf887dfff
Sep 28 12:54:24 hostname kernel:  [<f87c2000>] ? 0xf87c1fff
Sep 28 12:54:24 hostname kernel:  [<c1148ee8>] ? __vunmap+0x88/0xf0
Sep 28 12:54:24 hostname kernel:  [<c1148ee8>] ? __vunmap+0x88/0xf0
Sep 28 12:54:24 hostname kernel:  [<c10c0e2b>] ? load_module+0x1cab/0x2380
Sep 28 12:54:24 hostname kernel:  [<c10c1665>] ? SyS_finit_module+0x75/0xc0
Sep 28 12:54:24 hostname kernel:  [<c112ec4b>] ? vm_mmap_pgoff+0x7b/0xa0
Sep 28 12:54:24 hostname kernel:  [<c147971f>] ? sysenter_do_call+0x12/0x12
Sep 28 12:54:24 hostname kernel: Code: 08 89 54 24 08 c7 44 24 04 80 7f 85 f8 c7 04 24 a0 a2 84 f8 89 44 24 10 8b 45 f0 89 44 24 0c e8 5c d0 e3 ff e9 2b fe ff ff 0f 0b <0f> 0b b8 34 7d 85 f8 ba b2 01 00 00 e8 84 e8 86 c8 31 c0 e9 05
Sep 28 12:54:24 hostname kernel: EIP: [<f87e80db>] i915_gem_object_create_stolen_for_preallocated+0x20b/0x280 [i915] SS:ESP 0068:f4095b38
Sep 28 12:54:24 hostname kernel: ---[ end trace e796cb237f64e9fc ]---

Hardware from different reports:
00:02.0 VGA compatible controller [0300]: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller [8086:a011] (prog-if 00 [VGA controller])
00:02.0 VGA compatible controller [0300]: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller [8086:a011] (prog-if 00 [VGA controller])
"This is an Asus EeePC 1015PEM with Intel Graphics Media Accelerator 3150."
"Integrated Graphics Chipset: Intel(R) Pineview GM"

From my uninformed quick look, the BUG_ON seems to be an assertion for memory alignment. Any chance that this assertion does not hold on this hardware?

For further details, please see the full user reports at:

http://bugs.debian.org/764528
http://bugs.debian.org/771227
http://bugs.debian.org/768027
http://bugs.debian.org/763155

These may or may not be the exact same issue - some report that modeset temporarily helped, some linked form posts say it's backlight issue; but above BUG_ON can be found in at least two of the reports, and seems to persist in early 3.17 versions.
Comment 1 Chris Wilson 2014-12-01 07:45:36 UTC
A drm.debug=7 dmesg culminating with the oops would be useful.
Comment 2 Adam Cecile 2014-12-01 20:48:33 UTC
Created attachment 110320 [details]
3.16 kernel log with drm.debug=7

Here we go (log with drm.debug)

Thx
Comment 3 Johannes W 2014-12-09 22:01:20 UTC
Hi! I can confirm this bug for the Samsung N210 netbook, Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.3 (Debian 4.8.3-13) ) #1 SMP Debian 3.16.7-2 (2014-11-06):

Dec  9 19:21:42 hostname kernel: [   15.754683] samsung_laptop: Disabling ACPI video driver
Dec  9 19:21:42 hostname kernel: [   15.772261] samsung_laptop: enabled workaround for brightness stepping quirk
Dec  9 19:21:42 hostname kernel: [   15.773588] samsung_laptop: detected SABI interface: SwSmi@
Dec  9 19:21:42 hostname kernel: [   15.780503] [drm:i915_irq_handler] *ERROR* pipe B underrun
Dec  9 19:21:42 hostname kernel: [   15.789700] ------------[ cut here ]------------
Dec  9 19:21:42 hostname kernel: [   15.789719] kernel BUG at /build/linux-Y9HjRe/linux-3.16.7/drivers/gpu/drm/i915/i915_gem_stolen.c:431!
Dec  9 19:21:42 hostname kernel: [   15.789732] invalid opcode: 0000 [#1] SMP 
Dec  9 19:21:42 hostname kernel: [   15.789743] Modules linked in: samsung_laptop(+) snd_hda_controller cfg80211 snd_hda_codec i915(+) coretemp snd_hwdep 6lowpan_iphc snd_pcm psmouse rfkill snd_timer lpc_ich evdev mfd_core serio_raw snd drm_kms_helper i2c_i801 soundcore drm tpm_tis battery i2c_algo_bit ac tpm i2c_core video button shpchp acpi_cpufreq processor fuse parport_pc ppdev lp parport autofs4 ext4 crc16 mbcache jbd2 xts gf128mul algif_skcipher af_alg dm_crypt dm_mod sg sd_mod crc_t10dif crct10dif_generic crct10dif_common ahci libahci libata scsi_mod ehci_pci uhci_hcd ehci_hcd usbcore usb_common sky2 thermal thermal_sys
Dec  9 19:21:42 hostname kernel: [   15.789907] CPU: 0 PID: 271 Comm: systemd-udevd Not tainted 3.16.0-4-amd64 #1 Debian 3.16.7-2
Dec  9 19:21:42 hostname kernel: [   15.789920] Hardware name: SAMSUNG ELECTRONICS CO., LTD. N150/N210/N220             /N150/N210/N220             , BIOS 05JI.M039.20100109.JIP 01/09/2010
Dec  9 19:21:42 hostname kernel: [   15.789936] task: ffff88003600e2d0 ti: ffff880078efc000 task.ti: ffff880078efc000
Dec  9 19:21:42 hostname kernel: [   15.789950] RIP: 0010:[<ffffffffa03bb0aa>]  [<ffffffffa03bb0aa>] i915_gem_object_create_stolen_for_preallocated+0x26a/0x2e0 [i915]
Dec  9 19:21:42 hostname kernel: [   15.790028] RSP: 0018:ffff880078eff990  EFLAGS: 00010206
Dec  9 19:21:42 hostname kernel: [   15.790039] RAX: 0000000000000000 RBX: ffff880078d47b70 RCX: 0000000000139000
Dec  9 19:21:42 hostname kernel: [   15.790050] RDX: 00000000001d4c00 RSI: 00000000001d4c00 RDI: ffff880078d47800
Dec  9 19:21:42 hostname kernel: [   15.790062] RBP: ffff88007bdd0000 R08: ffff88007bdd0004 R09: ffff880078f50d00
Dec  9 19:21:42 hostname kernel: [   15.790073] R10: 0000000000000003 R11: ffff880078d47b40 R12: 0000000000139000
Dec  9 19:21:42 hostname kernel: [   15.790085] R13: ffff880078d47800 R14: 00000000001d4c00 R15: 00000000001d4c00
Dec  9 19:21:42 hostname kernel: [   15.790098] FS:  00007f3a0827e880(0000) GS:ffff88007f200000(0000) knlGS:0000000000000000
Dec  9 19:21:42 hostname kernel: [   15.790112] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Dec  9 19:21:42 hostname kernel: [   15.790123] CR2: 00007f3a082b1000 CR3: 000000007bc76000 CR4: 00000000000007f0
Dec  9 19:21:42 hostname kernel: [   15.790134] Stack:
Dec  9 19:21:42 hostname kernel: [   15.790142]  ffff88007bdd0004 ffff880078d47b70 ffff880078d47800 ffff88007bdd0000
Dec  9 19:21:42 hostname kernel: [   15.790160]  ffff880078eff9e4 ffff88007a084000 0000000000000042 ffffffffa03ecfd2
Dec  9 19:21:42 hostname kernel: [   15.790178]  0000000000000004 0000000000000093 0000000000000093 0000000000000000
Dec  9 19:21:42 hostname kernel: [   15.790196] Call Trace:
Dec  9 19:21:42 hostname kernel: [   15.790271]  [<ffffffffa03ecfd2>] ? intel_modeset_init+0x8e2/0x1370 [i915]
Dec  9 19:21:42 hostname kernel: [   15.790351]  [<ffffffffa0418870>] ? i915_driver_load+0xb20/0x1000 [i915]
Dec  9 19:21:42 hostname kernel: [   15.790369]  [<ffffffff813f75b0>] ? powercap_register_zone+0x680/0x680
Dec  9 19:21:42 hostname kernel: [   15.790386]  [<ffffffff812a9ed0>] ? cleanup_uevent_env+0x10/0x10
Dec  9 19:21:42 hostname kernel: [   15.790402]  [<ffffffff812aa27d>] ? kobject_uevent_env+0x17d/0x6b0
Dec  9 19:21:42 hostname kernel: [   15.790423]  [<ffffffff814f995b>] ? klist_add_tail+0x1b/0x40
Dec  9 19:21:42 hostname kernel: [   15.790438]  [<ffffffff8139c149>] ? device_add+0x219/0x610
Dec  9 19:21:42 hostname kernel: [   15.790466]  [<ffffffffa02783b4>] ? drm_dev_register+0xa4/0x100 [drm]
Dec  9 19:21:42 hostname kernel: [   15.790493]  [<ffffffffa027ada8>] ? drm_get_pci_dev+0x88/0x1f0 [drm]
Dec  9 19:21:42 hostname kernel: [   15.790510]  [<ffffffff812dfedf>] ? local_pci_probe+0x3f/0xa0
Dec  9 19:21:42 hostname kernel: [   15.790524]  [<ffffffff812e119a>] ? pci_device_probe+0xda/0x130
Dec  9 19:21:42 hostname kernel: [   15.790541]  [<ffffffff8139f0cd>] ? driver_probe_device+0x9d/0x3d0
Dec  9 19:21:42 hostname kernel: [   15.790556]  [<ffffffff8139f4cb>] ? __driver_attach+0x8b/0x90
Dec  9 19:21:42 hostname kernel: [   15.790571]  [<ffffffff8139f440>] ? __device_attach+0x40/0x40
Dec  9 19:21:42 hostname kernel: [   15.790585]  [<ffffffff8139d1db>] ? bus_for_each_dev+0x5b/0x90
Dec  9 19:21:42 hostname kernel: [   15.790600]  [<ffffffff8139e760>] ? bus_add_driver+0x180/0x250
Dec  9 19:21:42 hostname kernel: [   15.790624]  [<ffffffffa0341000>] ? 0xffffffffa0340fff
Dec  9 19:21:42 hostname kernel: [   15.790638]  [<ffffffff8139fc1b>] ? driver_register+0x5b/0xe0
Dec  9 19:21:42 hostname kernel: [   15.790653]  [<ffffffff8100213c>] ? do_one_initcall+0xcc/0x200
Dec  9 19:21:42 hostname kernel: [   15.790670]  [<ffffffff810d8aaa>] ? load_module+0x20da/0x26b0
Dec  9 19:21:42 hostname kernel: [   15.790684]  [<ffffffff810d46b0>] ? store_uevent+0x40/0x40
Dec  9 19:21:42 hostname kernel: [   15.790701]  [<ffffffff810d91dd>] ? SyS_finit_module+0x7d/0xa0
Dec  9 19:21:42 hostname kernel: [   15.790718]  [<ffffffff8150cc2d>] ? system_call_fast_compare_end+0x10/0x15
Dec  9 19:21:42 hostname kernel: [   15.790729] Code: df e8 3b 12 ec ff eb ae 41 89 c8 48 c7 c7 c0 3b 42 a0 89 d1 31 c0 89 f2 48 c7 c6 18 3a 43 a0 e8 fd cd eb ff e9 d6 fd ff ff 0f 0b <0f> 0b be b2 01 00 00 48 c7 c7 80 37 43 a0 e8 13 a7 ca e0 31 c0 
Dec  9 19:21:42 hostname kernel: [   15.790850] RIP  [<ffffffffa03bb0aa>] i915_gem_object_create_stolen_for_preallocated+0x26a/0x2e0 [i915]
Dec  9 19:21:42 hostname kernel: [   15.790929]  RSP <ffff880078eff990>
Dec  9 19:21:42 hostname kernel: [   15.790944] ---[ end trace 4cd82bf016c2d973 ]---
Comment 4 Erich Schubert 2014-12-12 17:50:26 UTC
Created attachment 110791 [details]
dmesg with drm.debug=7

Note: I bootet the system, got the lockup, but I had forgotten to put drm.debug=7 on the boot command line first. At the second boot (with debug=7), the system booted correctly; on the third attempt (with debug=7), drm crashed again. I am able to login via ssh to the system to access the logs.

The first difference is right before the BUG_ON is triggered:
---[unsuccessful]---
[drm:i9xx_get_plane_config] pipe/plane 1/1 with fb: size=640x400@32, offset=1d4c00, pitch 3200, size 0x139000
[drm:i915_gem_object_create_stolen_for_preallocated] creating preallocated stolen object: stolen_offset=1d4c00, gtt_offset=1d4c00, size=139000
kernel BUG at /build/linux-cizhNw/linux-3.16.7/drivers/gpu/drm/i915/i915_gem_stolen.c:431!
--- 8>< --

---[successful]---
[drm:i9xx_get_plane_config] pipe/plane 1/1 with fb: size=640x400@32, offset=0, pitch 3200, size 0x139000
[drm:i915_gem_object_create_stolen_for_preallocated] creating preallocated stolen object: stolen_offset=0, gtt_offset=0, size=139000
[drm:i915_pages_create_for_stolen] offset=0x0, size=1282048
--- 8>< --

Note the offset in i9xx_get_plane_config not being 0 in the unsuccessful boot.
Comment 5 Jani Nikula 2015-01-21 17:35:12 UTC
So we have a patch and a ton of bikeshedding at [1]. Please try the patch and let's see if we can move this bug in some direction. Thanks.

[1] http://patchwork.freedesktop.org/patch/38659
Comment 6 Johannes W 2015-01-22 00:45:35 UTC
(In reply to Jani Nikula from comment #5)
> So we have a patch and a ton of bikeshedding at [1]. Please try the patch
> and let's see if we can move this bug in some direction. Thanks.
> 
> [1] http://patchwork.freedesktop.org/patch/38659

Thanks! With this patch I can boot without problems:

Jan 22 01:35:19 hostname kernel: samsung_laptop: Disabling ACPI video driver
Jan 22 01:35:19 hostname kernel: samsung_laptop: enabled workaround for brightness stepping quirk
Jan 22 01:35:19 hostname kernel: samsung_laptop: detected SABI interface: SwSmi@
Jan 22 01:35:19 hostname mtp-probe[290]: checking bus 1, device 3: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8"
Jan 22 01:35:19 hostname mtp-probe[290]: bus: 1, device: 3 was not an MTP device
Jan 22 01:35:19 hostname kernel: [drm] Memory usable by graphics device = 512M
Jan 22 01:35:19 hostname kernel: [drm] Replacing VGA console driver
Jan 22 01:35:19 hostname kernel: Console: switching to colour dummy device 80x25
Jan 22 01:35:19 hostname kernel: i915 0000:00:02.0: irq 47 for MSI/MSI-X
Jan 22 01:35:19 hostname kernel: [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
Jan 22 01:35:19 hostname kernel: [drm] Driver supports precise vblank timestamp query.
Jan 22 01:35:19 hostname kernel: vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
Jan 22 01:35:19 hostname kernel: iTCO_vendor_support: vendor-support=0
Jan 22 01:35:19 hostname kernel: [drm] initialized overlay support
Comment 7 Daniel Vetter 2015-02-10 22:12:29 UTC
Sorry for the long delay in getting around to do a proper patch. Please test:

https://freedesktop.org/patch/42259/
Comment 8 Johannes W 2015-02-14 21:27:53 UTC
Created attachment 113497 [details] [review]
The patch in https://freedesktop.org/patch/42259/ adapted to Debian Jessie's linux_3.16.7-ckt4-3
Comment 9 Johannes W 2015-02-14 21:34:33 UTC
(In reply to Daniel Vetter from comment #7)
> Sorry for the long delay in getting around to do a proper patch. Please test:
> 
> https://freedesktop.org/patch/42259/

Thanks Daniel!

I had to adapt v3 of your patch (md5 9deb80da202eed38964d3059ec1e39d0) to Debian Jessie's kernel 3.16.7-ckt4-3 (see attachment 113497 [details] [review]), but after that it worked!
Comment 10 Jani Nikula 2015-02-24 14:02:33 UTC
Fixed by

commit f37b5c2be8979993efee2da50b51126e3908eb8b
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Feb 10 23:12:27 2015 +0100

    drm/i915: Align initial plane backing objects correctly

in drm-intel-fixes.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.