-
Notifications
You must be signed in to change notification settings - Fork 116
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'net-next-2024-12-01--09-00' into HEAD
- Loading branch information
Showing
1,849 changed files
with
56,105 additions
and
18,429 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
check-private-items = true | ||
|
||
disallowed-macros = [ | ||
# The `clippy::dbg_macro` lint only works with `std::dbg!`, thus we simulate | ||
# it here, see: https://github.com/rust-lang/rust-clippy/issues/11303. | ||
{ path = "kernel::dbg", reason = "the `dbg!` macro is intended as a debugging tool" }, | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
What: /sys/kernel/debug/vfio/<device>/migration/hisi_acc/dev_data | ||
Date: Jan 2025 | ||
KernelVersion: 6.13 | ||
Contact: Longfang Liu <[email protected]> | ||
Description: Read the configuration data and some status data | ||
required for device live migration. These data include device | ||
status data, queue configuration data, some task configuration | ||
data and device attribute data. The output format of the data | ||
is defined by the live migration driver. | ||
|
||
What: /sys/kernel/debug/vfio/<device>/migration/hisi_acc/migf_data | ||
Date: Jan 2025 | ||
KernelVersion: 6.13 | ||
Contact: Longfang Liu <[email protected]> | ||
Description: Read the data from the last completed live migration. | ||
This data includes the same device status data as in "dev_data". | ||
The migf_data is the dev_data that is migrated. | ||
|
||
What: /sys/kernel/debug/vfio/<device>/migration/hisi_acc/cmd_state | ||
Date: Jan 2025 | ||
KernelVersion: 6.13 | ||
Contact: Longfang Liu <[email protected]> | ||
Description: Used to obtain the device command sending and receiving | ||
channel status. Returns failure or success logs based on the | ||
results. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -163,6 +163,17 @@ Description: | |
will be present in sysfs. Writing 1 to this file | ||
will perform reset. | ||
|
||
What: /sys/bus/pci/devices/.../reset_subordinate | ||
Date: October 2024 | ||
Contact: [email protected] | ||
Description: | ||
This is visible only for bridge devices. If you want to reset | ||
all devices attached through the subordinate bus of a specific | ||
bridge device, writing 1 to this will try to do it. This will | ||
affect all devices attached to the system through this bridge | ||
similiar to writing 1 to their individual "reset" file, so use | ||
with caution. | ||
|
||
What: /sys/bus/pci/devices/.../vpd | ||
Date: February 2008 | ||
Contact: Ben Hutchings <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -311,10 +311,13 @@ Description: Do background GC aggressively when set. Set to 0 by default. | |
GC approach and turns SSR mode on. | ||
gc urgent low(2): lowers the bar of checking I/O idling in | ||
order to process outstanding discard commands and GC a | ||
little bit aggressively. uses cost benefit GC approach. | ||
little bit aggressively. always uses cost benefit GC approach, | ||
and will override age-threshold GC approach if ATGC is enabled | ||
at the same time. | ||
gc urgent mid(3): does GC forcibly in a period of given | ||
gc_urgent_sleep_time and executes a mid level of I/O idling check. | ||
uses cost benefit GC approach. | ||
always uses cost benefit GC approach, and will override | ||
age-threshold GC approach if ATGC is enabled at the same time. | ||
|
||
What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time | ||
Date: August 2017 | ||
|
@@ -819,3 +822,9 @@ Description: It controls the valid block ratio threshold not to trigger excessiv | |
for zoned deivces. The initial value of it is 95(%). F2FS will stop the | ||
background GC thread from intiating GC for sections having valid blocks | ||
exceeding the ratio. | ||
|
||
What: /sys/fs/f2fs/<disk>/max_read_extent_count | ||
Date: November 2024 | ||
Contact: "Chao Yu" <[email protected]> | ||
Description: It controls max read extent count for per-inode, the value of threshold | ||
is 10240 by default. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,3 +18,4 @@ PCI Bus Subsystem | |
pcieaer-howto | ||
endpoint/index | ||
boot-interrupts | ||
tph |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
=========== | ||
TPH Support | ||
=========== | ||
|
||
:Copyright: 2024 Advanced Micro Devices, Inc. | ||
:Authors: - Eric van Tassell <[email protected]> | ||
- Wei Huang <[email protected]> | ||
|
||
|
||
Overview | ||
======== | ||
|
||
TPH (TLP Processing Hints) is a PCIe feature that allows endpoint devices | ||
to provide optimization hints for requests that target memory space. | ||
These hints, in a format called Steering Tags (STs), are embedded in the | ||
requester's TLP headers, enabling the system hardware, such as the Root | ||
Complex, to better manage platform resources for these requests. | ||
|
||
For example, on platforms with TPH-based direct data cache injection | ||
support, an endpoint device can include appropriate STs in its DMA | ||
traffic to specify which cache the data should be written to. This allows | ||
the CPU core to have a higher probability of getting data from cache, | ||
potentially improving performance and reducing latency in data | ||
processing. | ||
|
||
|
||
How to Use TPH | ||
============== | ||
|
||
TPH is presented as an optional extended capability in PCIe. The Linux | ||
kernel handles TPH discovery during boot, but it is up to the device | ||
driver to request TPH enablement if it is to be utilized. Once enabled, | ||
the driver uses the provided API to obtain the Steering Tag for the | ||
target memory and to program the ST into the device's ST table. | ||
|
||
Enable TPH support in Linux | ||
--------------------------- | ||
|
||
To support TPH, the kernel must be built with the CONFIG_PCIE_TPH option | ||
enabled. | ||
|
||
Manage TPH | ||
---------- | ||
|
||
To enable TPH for a device, use the following function:: | ||
|
||
int pcie_enable_tph(struct pci_dev *pdev, int mode); | ||
|
||
This function enables TPH support for device with a specific ST mode. | ||
Current supported modes include: | ||
|
||
* PCI_TPH_ST_NS_MODE - NO ST Mode | ||
* PCI_TPH_ST_IV_MODE - Interrupt Vector Mode | ||
* PCI_TPH_ST_DS_MODE - Device Specific Mode | ||
|
||
`pcie_enable_tph()` checks whether the requested mode is actually | ||
supported by the device before enabling. The device driver can figure out | ||
which TPH mode is supported and can be properly enabled based on the | ||
return value of `pcie_enable_tph()`. | ||
|
||
To disable TPH, use the following function:: | ||
|
||
void pcie_disable_tph(struct pci_dev *pdev); | ||
|
||
Manage ST | ||
--------- | ||
|
||
Steering Tags are platform specific. PCIe spec does not specify where STs | ||
are from. Instead PCI Firmware Specification defines an ACPI _DSM method | ||
(see the `Revised _DSM for Cache Locality TPH Features ECN | ||
<https://members.pcisig.com/wg/PCI-SIG/document/15470>`_) for retrieving | ||
STs for a target memory of various properties. This method is what is | ||
supported in this implementation. | ||
|
||
To retrieve a Steering Tag for a target memory associated with a specific | ||
CPU, use the following function:: | ||
|
||
int pcie_tph_get_cpu_st(struct pci_dev *pdev, enum tph_mem_type type, | ||
unsigned int cpu_uid, u16 *tag); | ||
|
||
The `type` argument is used to specify the memory type, either volatile | ||
or persistent, of the target memory. The `cpu_uid` argument specifies the | ||
CPU where the memory is associated to. | ||
|
||
After the ST value is retrieved, the device driver can use the following | ||
function to write the ST into the device:: | ||
|
||
int pcie_tph_set_st_entry(struct pci_dev *pdev, unsigned int index, | ||
u16 tag); | ||
|
||
The `index` argument is the ST table entry index the ST tag will be | ||
written into. `pcie_tph_set_st_entry()` will figure out the proper | ||
location of ST table, either in the MSI-X table or in the TPH Extended | ||
Capability space, and write the Steering Tag into the ST entry pointed by | ||
the `index` argument. | ||
|
||
It is completely up to the driver to decide how to use these TPH | ||
functions. For example a network device driver can use the TPH APIs above | ||
to update the Steering Tag when interrupt affinity of a RX/TX queue has | ||
been changed. Here is a sample code for IRQ affinity notifier: | ||
|
||
.. code-block:: c | ||
static void irq_affinity_notified(struct irq_affinity_notify *notify, | ||
const cpumask_t *mask) | ||
{ | ||
struct drv_irq *irq; | ||
unsigned int cpu_id; | ||
u16 tag; | ||
irq = container_of(notify, struct drv_irq, affinity_notify); | ||
cpumask_copy(irq->cpu_mask, mask); | ||
/* Pick a right CPU as the target - here is just an example */ | ||
cpu_id = cpumask_first(irq->cpu_mask); | ||
if (pcie_tph_get_cpu_st(irq->pdev, TPH_MEM_TYPE_VM, cpu_id, | ||
&tag)) | ||
return; | ||
if (pcie_tph_set_st_entry(irq->pdev, irq->msix_nr, tag)) | ||
return; | ||
} | ||
Disable TPH system-wide | ||
----------------------- | ||
|
||
There is a kernel command line option available to control TPH feature: | ||
* "notph": TPH will be disabled for all endpoint devices. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.