Re: [RFC PATCH 3/9] Documentation/scrub-configure.rst: Add documentation for scrub driver

From: David Hildenbrand
Date: Mon Sep 18 2023 - 03:25:46 EST


On 15.09.23 19:28, shiju.jose@xxxxxxxxxx wrote:
From: Shiju Jose <shiju.jose@xxxxxxxxxx>

Add documentation for scrub driver, supports configure scrub parameters,
in Documentation/scrub-configure.rst

Signed-off-by: Shiju Jose <shiju.jose@xxxxxxxxxx>
---
Documentation/scrub-configure.rst | 55 +++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 Documentation/scrub-configure.rst

diff --git a/Documentation/scrub-configure.rst b/Documentation/scrub-configure.rst
new file mode 100644
index 000000000000..9f8581b88788
--- /dev/null
+++ b/Documentation/scrub-configure.rst
@@ -0,0 +1,55 @@
+==========================
+Scrub subsystem driver
+==========================
+
+Copyright (c) 2023 HiSilicon Limited.
+
+:Author: Shiju Jose <shiju.jose@xxxxxxxxxx>
+:License: The GNU Free Documentation License, Version 1.2
+ (dual licensed under the GPL v2)
+:Original Reviewers:
+
+- Written for: 6.7
+- Updated for:
+
+Introduction
+------------
+The scrub subsystem driver provides the interface for configure the

"... interface for configuring memory scrubbers in the system."

are we only configuring firmware/hw-based memory scrubbing? I assume so.

+parameters of memory scrubbers in the system. The scrub device drivers
+in the system register with the scrub configure subsystem.

Maybe say a few words what memory scrubbing is, and what it is used for.

+
+The scrub configure driver exposes the scrub controls to the user
+via sysfs.
+
+The File System
+---------------
+
+The configuration parameters of the registered scrubbers could be
+accessed via the /sys/class/scrub/scrubX/regionN/
+
+sysfs
+-----
+
+Sysfs files are documented in
+`Documentation/ABI/testing/sysfs-class-scrub-configure`.
+
+Example
+-------
+
+ The usage takes the form shown in this example::
+
+ # echo 0x300000 > /sys/class/scrub/scrub0/region0/addr_base
+ # echo 0x100000 > /sys/class/scrub/scrub0/region0/addr_size
+ # cat /sys/class/scrub/scrub0/region0/speed_available
+ # 1-60
+ # echo 25 > /sys/class/scrub/scrub0/region0/speed
+ # echo 1 > /sys/class/scrub/scrub0/region0/enable
+
+ # cat /sys/class/scrub/scrub0/region0/speed
+ # 0x19

Is it reasonable to return the speed as hex? You set it as dec.

+ # cat /sys/class/scrub/scrub0/region0/addr_base
+ # 0x100000

But didn't we set it to 0x300000 ...

+ # cat /sys/class/scrub/scrub0/region0/addr_size
+ # 0x200000

... and didn't we set it to 0x100000 ?

Or what's the magic happening here?

+
+ # echo 0 > /sys/class/scrub/scrub0/region0/enable

--
Cheers,

David / dhildenb