linux/Documentation/ABI/testing
Sergey Senozhatsky beca3ec71f zram: add multi stream functionality
Existing zram (zcomp) implementation has only one compression stream
(buffer and algorithm private part), so in order to prevent data
corruption only one write (compress operation) can use this compression
stream, forcing all concurrent write operations to wait for stream lock
to be released.  This patch changes zcomp to keep a compression streams
list of user-defined size (via sysfs device attr).  Each write operation
still exclusively holds compression stream, the difference is that we
can have N write operations (depending on size of streams list)
executing in parallel.  See TEST section later in commit message for
performance data.

Introduce struct zcomp_strm_multi and a set of functions to manage
zcomp_strm stream access.  zcomp_strm_multi has a list of idle
zcomp_strm structs, spinlock to protect idle list and wait queue, making
it possible to perform parallel compressions.

The following set of functions added:
- zcomp_strm_multi_find()/zcomp_strm_multi_release()
  find and release a compression stream, implement required locking
- zcomp_strm_multi_create()/zcomp_strm_multi_destroy()
  create and destroy zcomp_strm_multi

zcomp ->strm_find() and ->strm_release() callbacks are set during
initialisation to zcomp_strm_multi_find()/zcomp_strm_multi_release()
correspondingly.

Each time zcomp issues a zcomp_strm_multi_find() call, the following set
of operations performed:

- spin lock strm_lock
- if idle list is not empty, remove zcomp_strm from idle list, spin
  unlock and return zcomp stream pointer to caller
- if idle list is empty, current adds itself to wait queue. it will be
  awaken by zcomp_strm_multi_release() caller.

zcomp_strm_multi_release():
- spin lock strm_lock
- add zcomp stream to idle list
- spin unlock, wake up sleeper

Minchan Kim reported that spinlock-based locking scheme has demonstrated
a severe perfomance regression for single compression stream case,
comparing to mutex-based (see https://lkml.org/lkml/2014/2/18/16)

base                      spinlock                    mutex

==Initial write           ==Initial write             ==Initial  write
records:  5               records:  5                 records:   5
avg:      1642424.35      avg:      699610.40         avg:       1655583.71
std:      39890.95(2.43%) std:      232014.19(33.16%) std:       52293.96
max:      1690170.94      max:      1163473.45        max:       1697164.75
min:      1568669.52      min:      573429.88         min:       1553410.23
==Rewrite                 ==Rewrite                   ==Rewrite
records:  5               records:  5                 records:   5
avg:      1611775.39      avg:      501406.64         avg:       1684419.11
std:      17144.58(1.06%) std:      15354.41(3.06%)   std:       18367.42
max:      1641800.95      max:      531356.78         max:       1706445.84
min:      1593515.27      min:      488817.78         min:       1655335.73

When only one compression stream available, mutex with spin on owner
tends to perform much better than frequent wait_event()/wake_up().  This
is why single stream implemented as a special case with mutex locking.

Introduce and document zram device attribute max_comp_streams.  This
attr shows and stores current zcomp's max number of zcomp streams
(max_strm).  Extend zcomp's zcomp_create() with `max_strm' parameter.
`max_strm' limits the number of zcomp_strm structs in compression
backend's idle list (max_comp_streams).

max_comp_streams used during initialisation as follows:
-- passing to zcomp_create() max_strm equals to 1 will initialise zcomp
using single compression stream zcomp_strm_single (mutex-based locking).
-- passing to zcomp_create() max_strm greater than 1 will initialise zcomp
using multi compression stream zcomp_strm_multi (spinlock-based locking).

default max_comp_streams value is 1, meaning that zram with single stream
will be initialised.

Later patch will introduce configuration knob to change max_comp_streams
on already initialised and used zcomp.

TEST
iozone -t 3 -R -r 16K -s 60M -I +Z

       test           base       1 strm (mutex)     3 strm (spinlock)
-----------------------------------------------------------------------
 Initial write      589286.78       583518.39          718011.05
       Rewrite      604837.97       596776.38         1515125.72
  Random write      584120.11       595714.58         1388850.25
        Pwrite      535731.17       541117.38          739295.27
        Fwrite     1418083.88      1478612.72         1484927.06

Usage example:
set max_comp_streams to 4
        echo 4 > /sys/block/zram0/max_comp_streams

show current max_comp_streams (default value is 1).
        cat /sys/block/zram0/max_comp_streams

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Cc: Jerome Marchand <jmarchan@redhat.com>
Cc: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-04-07 16:36:01 -07:00
..
configfs-spear-pcie-gadget ST SPEAr: PCIE gadget suppport 2011-03-22 17:44:10 -07:00
configfs-usb-gadget Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-acm Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-ecm Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-eem Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-ffs Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-loopback Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-mass-storage Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-ncm Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-obex Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-phonet Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-rndis Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-serial Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-sourcesink Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
configfs-usb-gadget-subset Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/ 2014-01-29 16:22:40 -08:00
debugfs-driver-genwqe GenWQE Debugfs interfaces 2013-12-18 16:51:15 -08:00
debugfs-ec
debugfs-ideapad ideapad: add debugfs support 2011-10-24 16:52:39 +02:00
debugfs-olpc x86/olpc: Add debugfs interface for EC commands 2012-03-27 20:54:52 +02:00
debugfs-pfo-nx-crypto powerpc/crypto: debugfs routines and docs for the nx device driver 2012-05-16 15:05:45 +10:00
debugfs-pktcdvd
dev-kmsg doc: fix quite a few typos within Documentation 2012-11-19 14:28:24 +01:00
evm evm: re-release 2011-07-18 12:29:40 -04:00
ima_policy ima: add policy support for file system uuid 2013-02-06 10:40:29 -05:00
procfs-diskstats
pstore pstore: Create a convenient mount point for pstore 2013-02-12 13:07:22 -08:00
sysfs-ata
sysfs-block block: Implement support for WRITE SAME 2012-09-20 14:31:45 +02:00
sysfs-block-bcache bcache: A block layer cache 2013-03-23 16:11:31 -07:00
sysfs-block-dm dm: document sysfs entries 2012-03-28 18:41:23 +01:00
sysfs-block-rssd mtip32xx: Remove 'registers' and 'flags' from sysfs 2012-06-05 09:13:48 +02:00
sysfs-block-zram zram: add multi stream functionality 2014-04-07 16:36:01 -07:00
sysfs-bus-acpi ACPI: Add sysfs ABI documentation 2013-06-21 00:13:15 +02:00
sysfs-bus-bcma Documentation/ABI/: update version number references from 2.6.x to 3.x 2011-08-05 13:32:40 +02:00
sysfs-bus-css Fix common misspellings 2011-03-31 11:26:23 -03:00
sysfs-bus-event_source-devices-events powerpc/perf: Make some new raw event codes available in sysfs 2014-03-24 09:48:23 +11:00
sysfs-bus-event_source-devices-format perf: Expand definition of sysfs format attribute 2013-05-29 16:11:40 +03:00
sysfs-bus-event_source-devices-hv_24x7 powerpc/perf/hv_{gpci, 24x7}: Add documentation of device attributes 2014-03-24 09:48:33 +11:00
sysfs-bus-event_source-devices-hv_gpci powerpc/perf/hv_{gpci, 24x7}: Add documentation of device attributes 2014-03-24 09:48:33 +11:00
sysfs-bus-fcoe libfcoe, fcoe, bnx2fc: Add new fcoe control interface 2012-12-14 10:38:54 -08:00
sysfs-bus-hsi HSI: Add HSI ABI documentation 2012-04-23 14:23:32 +03:00
sysfs-bus-i2c-devices-fsa9480 drivers/misc: add support the FSA9480 USB Switch 2011-07-25 20:57:14 -07:00
sysfs-bus-i2c-devices-hm6352
sysfs-bus-i2c-devices-lm3533 mfd: Remove lm3533 boost attributes 2012-05-20 17:27:01 +02:00
sysfs-bus-iio iio: Add support for humidity sensors 2013-12-03 20:22:29 +00:00
sysfs-bus-iio-frequency-ad9523 iio: move ABI specification for store_eeprom; is used by ad9523, mcp4725 and ds1077 devices 2013-08-03 18:40:31 +01:00
sysfs-bus-iio-frequency-adf4350 iio: fix typo, Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350 2013-08-03 18:40:32 +01:00
sysfs-bus-iio-light-lm3533-als iio: cleanup sysfs-bus-iio-light-lm3533-als 2012-06-15 14:39:18 -07:00
sysfs-bus-iio-mpu6050 Invensense MPU6050 Device Driver. 2013-02-10 17:42:43 +00:00
sysfs-bus-mdio net: phy: expose phydev->has_fixups to sysfs 2014-02-12 19:08:49 -05:00
sysfs-bus-media [media] media: Media device 2011-03-22 04:53:09 -03:00
sysfs-bus-mei mei: bus: Initial MEI Client bus type implementation 2013-03-29 08:35:47 -07:00
sysfs-bus-pci PCI/MSI: Export MSI mode using attributes, not kobjects 2013-12-19 15:14:52 -07:00
sysfs-bus-pci-devices-cciss cciss: add transport mode attribute to sys 2011-08-08 11:40:17 +02:00
sysfs-bus-pci-drivers-ehci_hcd USB: document ehci-hcd's "companion" sysfs attribute 2011-09-18 01:48:37 -07:00
sysfs-bus-rbd rbd: add support for single-major device number allocation scheme 2013-12-31 20:31:59 +02:00
sysfs-bus-rpmsg rpmsg: add virtio-based remote processor messaging bus 2012-02-08 22:53:58 +02:00
sysfs-bus-umc
sysfs-bus-usb usb: core: allow a reference device for new_id 2014-01-10 16:54:35 -08:00
sysfs-bus-usb-devices-usbsevseg Documentation: Add newline at end-of-file to files lacking one 2012-07-20 23:10:28 +02:00
sysfs-c2port
sysfs-cfq-target-latency Documentation: Add sysfs ABI change for cfq's target latency. 2012-04-01 14:33:40 -07:00
sysfs-class driver-core: documentation: fix up Greg's email address 2012-02-15 14:48:01 -08:00
sysfs-class-backlight-driver-adp8870 Documentation: Add newline at end-of-file to files lacking one 2012-07-20 23:10:28 +02:00
sysfs-class-backlight-driver-lm3533 backlight: add LM3533 backlight driver 2012-05-29 16:22:29 -07:00
sysfs-class-bdi bdi: allow block devices to say that they require stable page writes 2013-02-21 17:22:19 -08:00
sysfs-class-devfreq PM / devfreq: add comments and Documentation 2013-06-03 20:20:29 +09:00
sysfs-class-extcon extcon: fix typos in sys-class-extcon 2012-09-05 12:18:11 -07:00
sysfs-class-lcd
sysfs-class-led Fix common misspellings 2011-03-31 11:26:23 -03:00
sysfs-class-led-driver-lm3533 leds: add LM3533 LED driver 2012-05-29 16:22:32 -07:00
sysfs-class-mic.txt misc: mic: Enable OSPM suspend and resume support. 2013-10-05 18:01:42 -07:00
sysfs-class-mtd mtd: add MTD_MLCNANDFLASH case for mtd_type_show() 2013-10-27 16:27:06 -07:00
sysfs-class-net net: sysfs: add Documentation entries for basic set of attributes 2014-03-31 16:09:06 -04:00
sysfs-class-net-batman-adv batman-adv: update email address for Marek Lindner 2013-10-19 14:53:48 +02:00
sysfs-class-net-grcan can: grcan: Add device driver for GRCAN and GRHCAN cores 2012-11-15 20:47:26 +01:00
sysfs-class-net-mesh batman-adv: Modified forwarding behaviour for multicast packets 2014-03-22 09:18:57 +01:00
sysfs-class-pktcdvd
sysfs-class-power
sysfs-class-powercap PowerCap: Documentation 2013-10-17 00:36:06 +02:00
sysfs-class-pwm pwm: Add sysfs interface 2013-06-21 11:32:51 +02:00
sysfs-class-rc [media] rc: add wakeup_protocols sysfs file 2014-03-11 13:28:20 -03:00
sysfs-class-regulator regulator: core: Support bypass mode 2012-09-10 11:25:10 +08:00
sysfs-class-rtc-rtc0-device-rtc_calibration rtc/ab8500: add calibration attribute to AB8500 RTC 2012-01-10 16:30:52 -08:00
sysfs-class-scsi_host [SCSI] hpsa: allow user to disable accelerated i/o path 2014-03-15 10:19:07 -07:00
sysfs-class-uwb_rc
sysfs-class-uwb_rc-wusbhc wusbcore: add entries in Documentation/ABI for new wusbhc sysfs attributes 2013-06-24 16:19:03 -07:00
sysfs-dev
sysfs-devices driver-core: documentation: fix up Greg's email address 2012-02-15 14:48:01 -08:00
sysfs-devices-edac MAINTAINERS & ABI: Update to point to my new email 2013-07-08 11:04:11 -03:00
sysfs-devices-firmware_node ACPI: Add new sysfs interface to export device description 2012-10-06 15:52:16 -04:00
sysfs-devices-lpss_ltr ACPI / LPSS: Add support for exposing LTR registers to user space 2013-03-21 22:45:15 +01:00
sysfs-devices-memory
sysfs-devices-mmc mmc: export eMMC4.4 enhanced area details to sysfs 2011-03-15 13:48:01 -04:00
sysfs-devices-online Driver core: Add offline/online device operations 2013-05-12 14:14:09 +02:00
sysfs-devices-platform-_UDC_-gadget
sysfs-devices-platform-docg3 Documentation: add sysfs entries for mtd docg3 chips 2012-01-09 18:12:17 +00:00
sysfs-devices-platform-sh_mobile_lcdc_fb fbdev: sh_mobile_lcdc: Implement overlays support 2012-06-20 10:02:54 +02:00
sysfs-devices-power PM / QoS: Introcuce latency tolerance device PM QoS type 2014-02-11 00:35:38 +01:00
sysfs-devices-power_resources_D0 ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_D1 ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_D2 ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_D3hot ACPI / PM: Expose lists of device power resources to user space 2013-01-25 21:51:32 +01:00
sysfs-devices-power_resources_wakeup ACPI / PM: Expose lists of device wakeup power resources to user space 2013-04-11 22:41:48 +02:00
sysfs-devices-power_state ACPI / PM: Expose power states of ACPI devices to user space 2013-01-24 12:49:59 +01:00
sysfs-devices-real_power_state ACPI / PM: Expose power states of ACPI devices to user space 2013-01-24 12:49:59 +01:00
sysfs-devices-resource_in_use ACPI / PM: Expose current status of ACPI power resources 2013-01-24 12:50:09 +01:00
sysfs-devices-soc Documentation: add information for new sysfs soc bus functionality 2012-02-10 11:42:25 -08:00
sysfs-devices-sun ACPI: Add sysfs ABI documentation 2013-06-21 00:13:15 +02:00
sysfs-devices-system-cpu Documentation: add ABI entry for intel_pstate 2014-01-06 14:35:16 +01:00
sysfs-devices-system-ibm-rtl
sysfs-devices-system-xen_cpu xen/pcpu: Xen physical cpus online/offline sys interface 2012-07-19 15:51:39 -04:00
sysfs-driver-genwqe GenWQE Sysfs interfaces 2013-12-18 16:51:15 -08:00
sysfs-driver-hid HID: Add HID Report Descriptor to sysfs 2011-02-17 13:23:14 +01:00
sysfs-driver-hid-lenovo-tpkbd HID: Driver for Lenovo Keyboard with Trackpoint 2012-06-08 10:44:10 +02:00
sysfs-driver-hid-logitech-lg4ff misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
sysfs-driver-hid-multitouch HID: multitouch: create sysfs attribute to control quirks from user-space 2011-11-23 14:50:38 +01:00
sysfs-driver-hid-picolcd
sysfs-driver-hid-prodikeys
sysfs-driver-hid-roccat-arvo HID: roccat: Add 'Users:' tag to sysfs documentation 2011-02-03 17:29:49 +01:00
sysfs-driver-hid-roccat-isku HID: roccat: add support for IskuFX 2013-03-14 11:50:49 +01:00
sysfs-driver-hid-roccat-kone Documentation: fix minor typos/spelling 2011-04-04 17:51:47 -07:00
sysfs-driver-hid-roccat-koneplus HID: roccat: deprecate some Koneplus attributes 2012-11-12 15:30:28 +01:00
sysfs-driver-hid-roccat-konepure HID: roccat: add support for Roccat Kone Pure gaming mouse 2013-03-14 11:50:49 +01:00
sysfs-driver-hid-roccat-kovaplus HID: roccat: deprecate some Kovaplus attributes 2012-11-12 15:30:29 +01:00
sysfs-driver-hid-roccat-lua HID: roccat: add support for Roccat Lua 2012-10-17 10:44:47 +02:00
sysfs-driver-hid-roccat-pyra HID: roccat: deprecated some Pyra attributes 2012-11-12 15:30:28 +01:00
sysfs-driver-hid-roccat-ryos HID: roccat: add support for Ryos MK keyboards 2013-10-30 14:17:31 +01:00
sysfs-driver-hid-roccat-savu HID: roccat: enable Savu device reset 2012-11-05 13:17:39 +01:00
sysfs-driver-hid-srws1 USB: HID: Steelseries SRW-S1 Add support controlling all LEDs simultaneously 2013-01-31 16:39:32 +01:00
sysfs-driver-hid-thingm HID: add ThingM blink(1) USB RGB LED support 2013-02-19 11:31:46 +01:00
sysfs-driver-hid-wiimote HID: wiimote: add pro-controller analog stick calibration 2013-10-30 14:13:29 +01:00
sysfs-driver-intel-rapid-start Add support driver for Intel Rapid Start Technology 2013-07-10 15:42:48 -04:00
sysfs-driver-ppi doc: fix quite a few typos within Documentation 2012-11-19 14:28:24 +01:00
sysfs-driver-samsung-laptop Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 2012-03-28 14:20:23 -07:00
sysfs-driver-sunxi-sid ARM: sunxi: Initial support for Allwinner's Security ID fuses 2013-09-26 13:47:36 -07:00
sysfs-driver-wacom HID: wacom: OLEDs control over sysfs for Intuos4 2012-08-15 10:29:11 +02:00
sysfs-driver-xen-blkback xen-blkback/sysfs: Move the parameters for the persistent grant features 2013-06-04 15:58:43 -04:00
sysfs-driver-xen-blkfront xen-blkfront: Introduce a 'max' module parameter to alter the amount of indirect segments. 2013-06-04 15:58:35 -04:00
sysfs-firmware-acpi ACPI / hotplug: Use device offline/online for graceful hot-removal 2013-05-12 14:14:24 +02:00
sysfs-firmware-dmi firmware: Fix grammar in sysfs-firmware-dmi doc 2011-04-19 16:45:51 -07:00
sysfs-firmware-efi efi: Export more EFI table variables to sysfs 2013-12-21 15:29:36 +00:00
sysfs-firmware-efi-runtime-map efi: Export EFI runtime memory mapping to sysfs 2013-12-21 15:29:36 +00:00
sysfs-firmware-gsmi driver: Google EFI SMI 2011-04-29 18:09:34 -07:00
sysfs-firmware-log driver: Google Memory Console 2011-04-29 18:09:34 -07:00
sysfs-firmware-memmap
sysfs-firmware-ofw of: Make device nodes kobjects so they show up in sysfs 2014-03-11 20:48:26 +00:00
sysfs-firmware-sfi
sysfs-firmware-sgi_uv
sysfs-fs-ext4 ext4: make the zero-out chunk size tunable 2012-08-17 09:54:17 -04:00
sysfs-fs-f2fs f2fs: update documents and a MAINTAINERS entry 2014-01-09 21:00:06 +09:00
sysfs-gpio
sysfs-i2c-bmp085
sysfs-ibft
sysfs-kernel-boot_params x86: Export x86 boot_params to sysfs 2013-12-29 13:09:07 +00:00
sysfs-kernel-fscaps kernel/ksysfs.c: expose file_caps_enabled in sysfs 2011-04-19 16:45:51 -07:00
sysfs-kernel-iommu_groups iommu: IOMMU Groups 2012-06-25 13:48:15 +02:00
sysfs-kernel-mm
sysfs-kernel-mm-hugepages
sysfs-kernel-mm-ksm ksm: add sysfs ABI Documentation 2013-02-23 17:50:19 -08:00
sysfs-kernel-slab slub: document setting min order with debug_guardpage_minorder > 0 2012-01-12 20:13:04 -08:00
sysfs-kernel-uids
sysfs-kernel-vmcoreinfo kdump: add /sys/kernel/vmcoreinfo ABI documentation 2014-01-23 16:37:03 -08:00
sysfs-memory-page-offline
sysfs-module Use 'E' instead of 'X' for unsigned module taint flag. 2014-03-31 14:52:43 +10:30
sysfs-ocfs2
sysfs-platform-asus-laptop Documentation: fix minor typos/spelling 2011-04-04 17:51:47 -07:00
sysfs-platform-asus-wmi asus-wmi: enable resume on lid open 2012-07-28 00:11:49 -04:00
sysfs-platform-at91 can: at91_can: make can_id of mailbox 0 configurable 2011-01-24 14:56:37 +01:00
sysfs-platform-eeepc-laptop
sysfs-platform-ideapad-laptop ideapad: add Lenovo IdeaPad Z570 support (part 3) 2012-08-20 12:44:41 -04:00
sysfs-platform-kim drivers:misc: ti-st: move from rfkill to sysfs 2011-02-04 12:41:20 -08:00
sysfs-platform-msi-laptop msi-laptop: Add missing ABI documentation 2013-02-24 14:49:53 -08:00
sysfs-platform-tahvo-usb usb: omap1: Tahvo USB transceiver driver 2013-12-06 14:46:32 -06:00
sysfs-platform-ts5500 x86: Add TS-5500 platform support 2013-01-25 19:40:23 +01:00
sysfs-power PM: Add missing "freeze" state 2014-03-12 00:54:53 +01:00
sysfs-pps
sysfs-profiling doc: Update the name of profiling based on sysfs 2012-12-03 11:11:51 +01:00
sysfs-ptp ptp: expose the programmable pins via sysfs 2014-03-21 14:21:14 -04:00
sysfs-tty Revert "tty: Set correct tty name in 'active' sysfs attribute" 2014-02-22 14:31:04 -08:00
sysfs-wusb_cbaf