On Tue, Nov 28, 2023 at 04:51:21PM -0800, Nicolin Chen wrote:
I also thought about making this out_driver_error_code per HW. Yet, an error can be either per array or per entry/quest. The array-related error should be reported in the array structure that is a core uAPI, v.s. the per-HW entry structure. Though we could still report an array error in the entry structure at the first entry (or indexed by "array->entry_num")?
why would there be an array error? array is just a software entity containing actual HW invalidation cmds. If there is any error with the array itself it should be reported via ioctl errno.
User array reading is a software operation, but kernel array reading is a hardware operation that can raise an error when the memory location to the array is incorrect or so.
Well, we shouldn't get into a situation like that.. By the time the HW got the address it should be valid.
With that being said, I think errno (-EIO) could do the job, as you suggested too.
Do we have any idea what HW failures can be generated by the commands this will execture? IIRC I don't remember seeing any smmu specific codes related to invalid invalidation? Everything is a valid input?
Can vt-d fail single commands? What about AMD?
Jason, how about your opinion? I didn't spot big issues except this one. Hope it can make into 6.8.
Yes, lets try
Jason