Re: [RFC PATCH 0/9] ACPI:RASF: Add support for ACPI RASF, ACPI RAS2 and configure scrubbers

From: Jiaqi Yan
Date: Mon Sep 18 2023 - 13:47:31 EST


On Mon, Sep 18, 2023 at 3:20 AM Shiju Jose <shiju.jose@xxxxxxxxxx> wrote:
>
> [+cc linux-edac@xxxxxxxxxxxxxxx]
>
> Hello,
>
> >-----Original Message-----
> >From: Jiaqi Yan <jiaqiyan@xxxxxxxxxx>
> >Sent: 17 September 2023 22:14
> >To: Shiju Jose <shiju.jose@xxxxxxxxxx>
> >Cc: linux-acpi@xxxxxxxxxxxxxxx; linux-mm@xxxxxxxxx; linux-
> >kernel@xxxxxxxxxxxxxxx; rafael@xxxxxxxxxx; lenb@xxxxxxxxxx;
> >naoya.horiguchi@xxxxxxx; tony.luck@xxxxxxxxx; james.morse@xxxxxxx;
> >dave.hansen@xxxxxxxxxxxxxxx; david@xxxxxxxxxx; jthoughton@xxxxxxxxxx;
> >somasundaram.a@xxxxxxx; erdemaktas@xxxxxxxxxx; pgonda@xxxxxxxxxx;
> >rientjes@xxxxxxxxxx; duenwen@xxxxxxxxxx; Vilas.Sridharan@xxxxxxx;
> >mike.malvestuto@xxxxxxxxx; gthelen@xxxxxxxxxx; Linuxarm
> ><linuxarm@xxxxxxxxxx>; Jonathan Cameron
> ><jonathan.cameron@xxxxxxxxxx>; tanxiaofei <tanxiaofei@xxxxxxxxxx>;
> >Zengtao (B) <prime.zeng@xxxxxxxxxxxxx>
> >Subject: Re: [RFC PATCH 0/9] ACPI:RASF: Add support for ACPI RASF, ACPI RAS2
> >and configure scrubbers
> >
> >On Fri, Sep 15, 2023 at 10:29 AM <shiju.jose@xxxxxxxxxx> wrote:
> >>
> >> From: Shiju Jose <shiju.jose@xxxxxxxxxx>
> >>
> >> This series add,
> >> 1. support for ACPI RASF(RAS feature table) PCC interfaces to
> >> communicate with the HW patrol scrubber in the platform, as per ACPI
> >> 5.1 & upwards revision. Section 5.2.20.
> >>
> >> 2. support for ACPI RAS2(RAS2 feature table), as per ACPI 6.5 &
> >> upwards revision. Section 5.2.21.
> >>
> >> 3. scrub driver supports configuring parameters of the memory
> >> scrubbers in the system. This driver has been implemented based on the
> >> hwmon subsystem.
> >>
> >> The features have tested with RASF and RAS2 emulation in the QEMU.
> >
> >I am very curious how the test is done. Does the hw patrol scrubber on host
> >actually been driven by the driver to scrub memory DIMMs (doesn't seem so to
> >me, but do correct me)? Or it is like to a VM scrubbing is simulated and no real
> >op to DIMMs?
> Intent here is hardware scrubber on host as far as we are concerned.

Sorry maybe my question was not clear, so let me try again.

Does the driver being tested on a machine and directly or indirectly
control (start/stop) hardware patrol scrubber to scrub physical
memory? what are the CPU chip, memory controller, and DIMM chips?

> Could be used for VM too perhaps. We did it with QEMU emulation for now
> to get the flexibility of configuration. However there will be other scrub controls
> over time, such as DDR5 ECS.
> https://media-www.micron.com/-/media/client/global/documents/products/white-paper/ddr5_new_features_white_paper.pdf?rev=b98f4977d9334b4aa5d0d211a92bf14a
>
> Also found there is very simple support for scrub control in edac, and an alternative path
> would be to look at extending that to sufficient complexity to support region based scanning.
> https://elixir.bootlin.com/linux/latest/source/include/linux/edac.h#L512
>
> >
> >>
> >> Previous references to the memory scub and RASF topics.
> >> https://lore.kernel.org/all/20221103155029.2451105-1-jiaqiyan@google.c
> >> om/
> >> https://patchwork.kernel.org/project/linux-arm-kernel/patch/CS1PR84MB0
> >>
> >038718F49DBC0FF03919E1184390@xxxxxxxxxxxxxxxxxxxxxxxxxxx.OUTLO
> >OK.COM/
> >>
> >> A Somasundaram (2):
> >> ACPI:RASF: Add extract RASF table to register RASF platform devices
> >> ACPI:RASF: Add common library for RASF and RAS2 PCC interfaces
> >>
> >> Shiju Jose (7):
> >> memory: scrub: Add scrub driver supports configuring memory scrubbers
> >> in the system
> >> memory: scrub: sysfs: Add Documentation entries for set of scrub
> >> attributes
> >> Documentation/scrub-configure.rst: Add documentation for scrub driver
> >> memory: RASF: Add memory RASF driver
> >> ACPICA: ACPI 6.5: Add support for RAS2 table
> >> ACPI:RAS2: Add driver for ACPI RAS2 feature table (RAS2)
> >> memory: RAS2: Add memory RAS2 driver
> >>
> >> .../ABI/testing/sysfs-class-scrub-configure | 82 ++++
> >> Documentation/scrub-configure.rst | 55 +++
> >> drivers/acpi/Kconfig | 15 +
> >> drivers/acpi/Makefile | 1 +
> >> drivers/acpi/ras2_acpi.c | 97 ++++
> >> drivers/acpi/rasf_acpi.c | 71 +++
> >> drivers/acpi/rasf_acpi_common.c | 272 +++++++++++
> >> drivers/memory/Kconfig | 15 +
> >> drivers/memory/Makefile | 3 +
> >> drivers/memory/ras2.c | 334 +++++++++++++
> >> drivers/memory/rasf.c | 335 +++++++++++++
> >> drivers/memory/rasf_common.c | 251 ++++++++++
> >> drivers/memory/scrub/Kconfig | 11 +
> >> drivers/memory/scrub/Makefile | 6 +
> >> drivers/memory/scrub/memory-scrub.c | 452 ++++++++++++++++++
> >> include/acpi/actbl2.h | 55 +++
> >> include/acpi/rasf_acpi.h | 59 +++
> >> include/memory/memory-scrub.h | 85 ++++
> >> include/memory/rasf.h | 82 ++++
> >> 19 files changed, 2281 insertions(+)
> >> create mode 100644
> >> Documentation/ABI/testing/sysfs-class-scrub-configure
> >> create mode 100644 Documentation/scrub-configure.rst create mode
> >> 100755 drivers/acpi/ras2_acpi.c create mode 100755
> >> drivers/acpi/rasf_acpi.c create mode 100755
> >> drivers/acpi/rasf_acpi_common.c create mode 100644
> >> drivers/memory/ras2.c create mode 100644 drivers/memory/rasf.c
> >> create mode 100644 drivers/memory/rasf_common.c create mode 100644
> >> drivers/memory/scrub/Kconfig create mode 100644
> >> drivers/memory/scrub/Makefile create mode 100755
> >> drivers/memory/scrub/memory-scrub.c
> >> create mode 100755 include/acpi/rasf_acpi.h create mode 100755
> >> include/memory/memory-scrub.h create mode 100755
> >> include/memory/rasf.h
> >>
> >> --
> >> 2.34.1
> >>
>
> Thanks,
> Shiju