2022-11-08 01:18:11

by Fenghua Yu

[permalink] [raw]
Subject: [PATCH 1/3] dmaengine: idxd: Add descriptor definitions for 16 bytes of pattern in memory fill operation

The memory fill operation (0x04) can fill in memory with either 8 bytes
or 16 bytes of pattern. To fill in memory with 16 bytes of pattern, the
first 8 bytes are provided in pattern lower in bytes 16-23 and the next
8 bytes are in pattern upper in bytes 40-47 in the descriptor. Currently
only 8 bytes of pattern is enabled.

Add descriptor definitions for pattern lower and pattern upper so that
user can use 16 bytes of pattern to fill memory.

Signed-off-by: Fenghua Yu <[email protected]>
Reviewed-by: Dave Jiang <[email protected]>
---
include/uapi/linux/idxd.h | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/include/uapi/linux/idxd.h b/include/uapi/linux/idxd.h
index 095299c75828..04a2f6411820 100644
--- a/include/uapi/linux/idxd.h
+++ b/include/uapi/linux/idxd.h
@@ -179,6 +179,7 @@ struct dsa_hw_desc {
uint64_t rdback_addr;
uint64_t pattern;
uint64_t desc_list_addr;
+ uint64_t pattern_lower;
};
union {
uint64_t dst_addr;
@@ -243,6 +244,11 @@ struct dsa_hw_desc {
uint16_t dest_app_tag_seed;
};

+ /* Fill */
+ struct {
+ uint64_t pattern_upper;
+ };
+
uint8_t op_specific[24];
};
} __attribute__((packed));
--
2.32.0



2022-11-08 16:44:32

by Dave Jiang

[permalink] [raw]
Subject: Re: [PATCH 1/3] dmaengine: idxd: Add descriptor definitions for 16 bytes of pattern in memory fill operation



On 11/7/2022 4:39 PM, Fenghua Yu wrote:
> The memory fill operation (0x04) can fill in memory with either 8 bytes
> or 16 bytes of pattern. To fill in memory with 16 bytes of pattern, the
> first 8 bytes are provided in pattern lower in bytes 16-23 and the next
> 8 bytes are in pattern upper in bytes 40-47 in the descriptor. Currently
> only 8 bytes of pattern is enabled.
>
> Add descriptor definitions for pattern lower and pattern upper so that
> user can use 16 bytes of pattern to fill memory.
>
> Signed-off-by: Fenghua Yu <[email protected]>
> Reviewed-by: Dave Jiang <[email protected]>
> ---
> include/uapi/linux/idxd.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/include/uapi/linux/idxd.h b/include/uapi/linux/idxd.h
> index 095299c75828..04a2f6411820 100644
> --- a/include/uapi/linux/idxd.h
> +++ b/include/uapi/linux/idxd.h
> @@ -179,6 +179,7 @@ struct dsa_hw_desc {
> uint64_t rdback_addr;
> uint64_t pattern;
> uint64_t desc_list_addr;
> + uint64_t pattern_lower;
> };
> union {
> uint64_t dst_addr;
> @@ -243,6 +244,11 @@ struct dsa_hw_desc {
> uint16_t dest_app_tag_seed;
> };
>
> + /* Fill */
> + struct {

I don't think the anon struct is needed here. If there are others, that
can be added later with the next patch that needs it.

> + uint64_t pattern_upper;
> + };
> +
> uint8_t op_specific[24];
> };
> } __attribute__((packed));