Go to file
James Morse a6e12013d6 openEuler: ACPI / PPTT: Filthy hack to find _a_ backwards reference in the PPTT [ROTTEN]
to #34407882

commit 0ed11dc41fe828a3d2b69220347b3a2ed9795ba9 openEuler

hulk inclusion
category: feature
feature: ARM MPAM support
bugzilla: 48265
CVE: NA

--------------------------------

The alpha MPAM table contains a pointer to the PPTT cache, which it
expects to be unique, which isn't guaranteed.

Ideally we'd take a cache-id, but the hardware doesn't have a
suitable property, instead arm64 will generate an id from the cpu
affinity ids.

To find the cache id we need to find the cacheinfo structure, which
we can do if we have a pptt cpu_node (different to the cache node),
as this is the fw_token used to match the Processor Container that
contains all the CPUs that share this cache.

How can we find the expected-to-be-unique cpu_node from the cache_node?
... add acpi_pptt_find_cache_backwards() to find a PPTT processor node
given a PPTT cache node. This is totally broken as many processor nodes
may point at the same PPTT cache indicating different instances of the
cache. (e.g. all the L1 caches are the same shape, but they aren't the
same cache).

This only works if you cooked your PPTT table to look like this.

Signed-off-by: James Morse <james.morse@arm.com> # ... but its still GPLv2
Signed-off-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
Reviewed-by: Xie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Cheng Jian <cj.chengjian@huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
2022-08-01 11:16:27 +00:00
Documentation ck: block: add counter to track io request's d2c time 2022-08-01 11:16:09 +00:00
LICENSES LICENSES/deprecated: add Zlib license text 2020-09-16 14:33:49 +02:00
arch openEuler: arm64/mpam: cleanup the source file's licence 2022-08-01 11:16:26 +00:00
block ck: blk: fix wrong usage about __rq_for_each_bio() 2022-08-01 11:16:10 +00:00
certs certs/blacklist_hashes.c: fix const confusion in certs blacklist 2022-06-22 14:13:17 +02:00
configs configs: x86: resize log buffer 2022-08-01 11:16:11 +00:00
crypto crypto: memneq - move into lib/ 2022-06-22 14:13:18 +02:00
drivers openEuler: ACPI / PPTT: Filthy hack to find _a_ backwards reference in the PPTT [ROTTEN] 2022-08-01 11:16:27 +00:00
fs openEuler: arm64/mpam: cleanup the source file's licence 2022-08-01 11:16:26 +00:00
include openEuler: ACPI / PPTT: Filthy hack to find _a_ backwards reference in the PPTT [ROTTEN] 2022-08-01 11:16:27 +00:00
init Kconfig: Add option for asm goto w/ tied outputs to workaround clang-13 bug 2022-06-09 10:21:25 +02:00
ipc ipc/mqueue: use get_tree_nodev() in mqueue_get_tree() 2022-06-09 10:21:17 +02:00
kernel ck: livepatch: Add atomic replace with stop machine model 2022-08-01 11:16:10 +00:00
lib ida: don't use BUG_ON() for debugging 2022-07-12 16:32:23 +02:00
mm ck: introduce deferred_meminit boot parameter 2022-08-01 11:15:59 +00:00
net ck: tcp_rt module: fix bug of using vfree to release the memory obtained by kmalloc 2022-08-01 11:02:08 +00:00
samples x86: Prepare inline-asm for straight-line-speculation 2022-07-25 11:26:29 +02:00
scripts x86/retbleed: Add fine grained Kconfig knobs 2022-07-25 11:26:50 +02:00
security lockdown: Fix kexec lockdown bypass with ima policy 2022-07-29 17:19:06 +02:00
sound ALSA: memalloc: Align buffer allocations in page size 2022-07-29 17:19:25 +02:00
tools cpupower: Add cpuid cap flag for MSR_AMD_HWCR support 2022-08-01 11:16:13 +00:00
usr usr/include/Makefile: add linux/nfc.h to the compile-test coverage 2022-02-01 17:25:48 +01:00
virt KVM: Don't null dereference ops->destroy 2022-07-29 17:19:23 +02:00
.clang-format RDMA 5.10 pull request 2020-10-17 11:18:18 -07:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore kbuild: generate Module.symvers only when vmlinux exists 2021-05-19 10:12:59 +02:00
.mailmap mailmap: add two more addresses of Uwe Kleine-König 2020-12-06 10:19:07 -08:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Move Jason Cooper to CREDITS 2020-11-30 10:20:34 +01:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS ck: tcp_rt: add Documentation for tcp-rt 2022-08-01 11:02:08 +00:00
Makefile Linux 5.10.134 2022-07-29 17:19:29 +02:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.