Devices that do not support setting WC keep generating ereports
Description by Jeffry Molanus.
There is a very long outstanding issue around zeus rams and perhaps others, where the system tries to enable the Write Cache (WC).
This generates an ereport on each vdev_disk_open() and the ereport DB can grow substantially over time with lots of reports indicating the problem.
Also, the ereports trigger other parts of the system to kick in gear in particular FMD and we could really spare the IOPs and CPU cycles if we become a little smarter when handling the DKIOCSETWCE ioctl.
Using dtrace is easy to find out what disk and operation is causing the error
CPU ID FUNCTION:NAME 4 32548 scsi_transport:entry sd`sd_start_cmds+0x25f sd`sd_core_iostart+0xf7 sd`sd_uscsi_strategy+0x15f genunix`default_physio+0x33d genunix`physio+0x25 scsi`scsi_uscsi_handle_cmd+0x2a5 sd`sd_ssc_send+0x195 sd`sd_send_scsi_MODE_SELECT+0x1ca sd`sd_cache_control+0x3d4 sd`sdioctl+0x1bfb genunix`cdev_ioctl+0x39 genunix`ldi_ioctl+0x88 zfs`vdev_disk_open+0x297 zfs`vdev_open+0x1d5 zfs`vdev_open_child+0x28 genunix`taskq_thread+0x318 unix`thread_start+0x8
When we issue the
MODE SENSE(10) we should prior to that set the page control field to 1, and verify the setting is changeable before we just blindly modify the bit. the STEC zeusram does not support changing this bit and as result we generate sense data which triggers the ereport over and over and over again as we dont learn from our failures.
Updated by Electric Monk about 3 years ago
- Status changed from In Progress to Closed
- % Done changed from 50 to 100
commit f1cc607eb9fe881d3fa29a24921e6ba1b64eb7fb Author: Jeffry Molanus <email@example.com> Date: 2017-03-02T14:08:42.000Z 7901 Devices that do not support setting WC keep generating ereports Reviewed by: Yuri Pankov <firstname.lastname@example.org> Reviewed by: Dan Fields <email@example.com> Reviewed by: Robert Mustacchi <firstname.lastname@example.org> Approved by: Hans Rosenfeld <email@example.com>