[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 04/19] accel/tcg: Adjust probe_access call to page_check_r
From: |
Richard Henderson |
Subject: |
Re: [PATCH v5 04/19] accel/tcg: Adjust probe_access call to page_check_range |
Date: |
Fri, 8 May 2020 09:57:02 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 5/8/20 9:13 AM, Peter Maydell wrote:
> On Fri, 8 May 2020 at 16:44, Richard Henderson
> <address@hidden> wrote:
>>
>> We have validated that addr+size does not cross a page boundary.
>> Therefore we need to validate exactly one page. We can achieve
>> that passing any value 1 <= x <= size to page_check_range.
>>
>> Passing 1 will simplify the next patch.
>
> It's not clear to me how it simplifies the next patch, though --
> we have the size right there in the new function which
> calls page_check_range(), don't we? So I still don't
> understand why we're using '1' -- it isn't allowing
> us to avoid passing the size into probe_access_internal(),
> because we need to pass it anyway.
>
> We've gone round this multiple times now so I feel like
> I must be missing something here.
While probe_access() has a size parameter, probe_access_flags() does not.
For probe_access_internal(), I currently have a "fault_size" parameter that
gets passed to tlb_fill, which is "size" for probe_access() and 0 for
probe_access_flags().
I *could* add another "check_size" parameter to probe_access_internal, to be
passed on to page_check_range(). It would be "size" for probe_access() and 1
for probe_access_flags(). But what's the point? Always passing 1 to
page_check_range() has the same effect.
I feel like I'm missing something with your objection.
r~
- [PATCH v5 00/19] target/arm: sve load/store improvements, Richard Henderson, 2020/05/08
- [PATCH v5 05/19] accel/tcg: Add probe_access_flags, Richard Henderson, 2020/05/08
- [PATCH v5 07/19] target/arm: Use cpu_*_data_ra for sve_ldst_tlb_fn, Richard Henderson, 2020/05/08
- [PATCH v5 08/19] target/arm: Drop manual handling of set/clear_helper_retaddr, Richard Henderson, 2020/05/08
- [PATCH v5 11/19] target/arm: Use SVEContLdSt in sve_ld1_r, Richard Henderson, 2020/05/08
- [PATCH v5 06/19] accel/tcg: Add endian-specific cpu_{ld, st}* operations, Richard Henderson, 2020/05/08
- [PATCH v5 09/19] target/arm: Add sve infrastructure for page lookup, Richard Henderson, 2020/05/08
- [PATCH v5 12/19] target/arm: Handle watchpoints in sve_ld1_r, Richard Henderson, 2020/05/08
- [PATCH v5 10/19] target/arm: Adjust interface of sve_ld1_host_fn, Richard Henderson, 2020/05/08
- [PATCH v5 14/19] target/arm: Update contiguous first-fault and no-fault loads, Richard Henderson, 2020/05/08