b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | sysfs interface |
| 2 | --------------- |
| 3 | The pktcdvd module (packet writing driver) creates the following files in the |
| 4 | sysfs: (<devid> is in the format major:minor) |
| 5 | |
| 6 | What: /sys/class/pktcdvd/add |
| 7 | What: /sys/class/pktcdvd/remove |
| 8 | What: /sys/class/pktcdvd/device_map |
| 9 | Date: Oct. 2006 |
| 10 | KernelVersion: 2.6.20 |
| 11 | Contact: Thomas Maier <balagi@justmail.de> |
| 12 | Description: |
| 13 | |
| 14 | add: (WO) Write a block device id (major:minor) to |
| 15 | create a new pktcdvd device and map it to the |
| 16 | block device. |
| 17 | |
| 18 | remove: (WO) Write the pktcdvd device id (major:minor) |
| 19 | to remove the pktcdvd device. |
| 20 | |
| 21 | device_map: (RO) Shows the device mapping in format: |
| 22 | pktcdvd[0-7] <pktdevid> <blkdevid> |
| 23 | |
| 24 | |
| 25 | What: /sys/class/pktcdvd/pktcdvd[0-7]/dev |
| 26 | What: /sys/class/pktcdvd/pktcdvd[0-7]/uevent |
| 27 | Date: Oct. 2006 |
| 28 | KernelVersion: 2.6.20 |
| 29 | Contact: Thomas Maier <balagi@justmail.de> |
| 30 | Description: |
| 31 | dev: (RO) Device id |
| 32 | |
| 33 | uevent: (WO) To send a uevent |
| 34 | |
| 35 | |
| 36 | What: /sys/class/pktcdvd/pktcdvd[0-7]/stat/packets_started |
| 37 | What: /sys/class/pktcdvd/pktcdvd[0-7]/stat/packets_finished |
| 38 | What: /sys/class/pktcdvd/pktcdvd[0-7]/stat/kb_written |
| 39 | What: /sys/class/pktcdvd/pktcdvd[0-7]/stat/kb_read |
| 40 | What: /sys/class/pktcdvd/pktcdvd[0-7]/stat/kb_read_gather |
| 41 | What: /sys/class/pktcdvd/pktcdvd[0-7]/stat/reset |
| 42 | Date: Oct. 2006 |
| 43 | KernelVersion: 2.6.20 |
| 44 | Contact: Thomas Maier <balagi@justmail.de> |
| 45 | Description: |
| 46 | packets_started: (RO) Number of started packets. |
| 47 | |
| 48 | packets_finished: (RO) Number of finished packets. |
| 49 | |
| 50 | kb_written: (RO) kBytes written. |
| 51 | |
| 52 | kb_read: (RO) kBytes read. |
| 53 | |
| 54 | kb_read_gather: (RO) kBytes read to fill write packets. |
| 55 | |
| 56 | reset: (WO) Write any value to it to reset |
| 57 | pktcdvd device statistic values, like |
| 58 | bytes read/written. |
| 59 | |
| 60 | |
| 61 | What: /sys/class/pktcdvd/pktcdvd[0-7]/write_queue/size |
| 62 | What: /sys/class/pktcdvd/pktcdvd[0-7]/write_queue/congestion_off |
| 63 | What: /sys/class/pktcdvd/pktcdvd[0-7]/write_queue/congestion_on |
| 64 | Date: Oct. 2006 |
| 65 | KernelVersion: 2.6.20 |
| 66 | Contact: Thomas Maier <balagi@justmail.de> |
| 67 | Description: |
| 68 | size: (RO) Contains the size of the bio write queue. |
| 69 | |
| 70 | congestion_off: (RW) If bio write queue size is below this mark, |
| 71 | accept new bio requests from the block layer. |
| 72 | |
| 73 | congestion_on: (RW) If bio write queue size is higher as this |
| 74 | mark, do no longer accept bio write requests |
| 75 | from the block layer and wait till the pktcdvd |
| 76 | device has processed enough bio's so that bio |
| 77 | write queue size is below congestion off mark. |
| 78 | A value of <= 0 disables congestion control. |
| 79 | |
| 80 | |
| 81 | Example: |
| 82 | -------- |
| 83 | To use the pktcdvd sysfs interface directly, you can do: |
| 84 | |
| 85 | # create a new pktcdvd device mapped to /dev/hdc |
| 86 | echo "22:0" >/sys/class/pktcdvd/add |
| 87 | cat /sys/class/pktcdvd/device_map |
| 88 | # assuming device pktcdvd0 was created, look at stat's |
| 89 | cat /sys/class/pktcdvd/pktcdvd0/stat/kb_written |
| 90 | # print the device id of the mapped block device |
| 91 | fgrep pktcdvd0 /sys/class/pktcdvd/device_map |
| 92 | # remove device, using pktcdvd0 device id 253:0 |
| 93 | echo "253:0" >/sys/class/pktcdvd/remove |