Re: [PATCH 1/2] KVM: s390: gaccess: Cleanup access to guest frames

From: Janosch Frank
Date: Wed Aug 18 2021 - 04:06:45 EST


On 8/18/21 9:54 AM, David Hildenbrand wrote:
> On 16.08.21 17:07, Janis Schoetterl-Glausch wrote:
>> Introduce a helper function for guest frame access.
>> Rewrite the calculation of the gpa and the length of the segment
>> to be more readable.
>>
>> Signed-off-by: Janis Schoetterl-Glausch <scgl@xxxxxxxxxxxxx>
[...]
>> - unsigned long _len, gpa;
>> + unsigned long gpa;
>> + unsigned int seg;
>> int rc = 0;
>>
>> while (len && !rc) {
>> gpa = kvm_s390_real_to_abs(vcpu, gra);
>> - _len = min(PAGE_SIZE - (gpa & ~PAGE_MASK), len);
>> - if (mode)
>> - rc = write_guest_abs(vcpu, gpa, data, _len);
>> - else
>> - rc = read_guest_abs(vcpu, gpa, data, _len);
>> - len -= _len;
>> - gra += _len;
>> - data += _len;
>> + seg = min(PAGE_SIZE - offset_in_page(gpa), len);
>
> What does "seg" mean? I certainly know when "len" means -- which is also
> what the function eats.

What does "_len" mean especially in contrast to "len"?

"seg" is used in the common kvm guest access functions so it's at least
consistent although I share the sentiment that it's not a great name for
the length we access inside the page.

Originally I suggested "len_in_page" if you have a better name I'd
expect we'll both be happy to discuss it :-)

>
>> + rc = access_guest_frame(vcpu->kvm, mode, gpa, data, seg);
>> + len -= seg;
>> + gra += seg;
>> + data += seg;
>> }
>> return rc;
>> }
>>
>
>