KVM Archive on lore.kernel.org
 help / color / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Eric Farman <farman@linux.ibm.com>
Cc: Farhan Ali <alifm@linux.ibm.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	linux-s390@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH v2 5/9] vfio-ccw: Rearrange pfn_array and pfn_array_table arrays
Date: Thu, 13 Jun 2019 18:02:32 +0200
Message-ID: <20190613180232.3cbea661.cohuck@redhat.com> (raw)
In-Reply-To: <20190606202831.44135-6-farman@linux.ibm.com>

On Thu,  6 Jun 2019 22:28:27 +0200
Eric Farman <farman@linux.ibm.com> wrote:

> While processing a channel program, we currently have two nested
> arrays that carry a slightly different structure.  The direct CCW
> path creates this:
> 
>   ccwchain->pfn_array_table[1]->pfn_array[#pages]
> 
> while an IDA CCW creates:
> 
>   ccwchain->pfn_array_table[#idaws]->pfn_array[1]
> 
> The distinction appears to state that each pfn_array_table entry
> points to an array of contiguous pages, represented by a pfn_array,
> um, array.  Since the direct-addressed scenario can ONLY represent
> contiguous pages, it makes the intermediate array necessary but
> difficult to recognize.  Meanwhile, since an IDAL can contain
> non-contiguous pages and there is no logic in vfio-ccw to detect
> adjacent IDAWs, it is the second array that is necessary but appearing
> to be superfluous.
> 
> I am not aware of any documentation that states the pfn_array[] needs
> to be of contiguous pages; it is just what the code does today.
> I don't see any reason for this either, let's just flip the IDA
> codepath around so that it generates:
> 
>   ch_pat->pfn_array_table[1]->pfn_array[#idaws]
> 
> This will bring it in line with the direct-addressed codepath,
> so that we can understand the behavior of this memory regardless
> of what type of CCW is being processed.  And it means the casual
> observer does not need to know/care whether the pfn_array[]
> represents contiguous pages or not.
> 
> NB: The existing vfio-ccw code only supports 4K-block Format-2 IDAs,
> so that "#pages" == "#idaws" in this area.  This means that we will
> have difficulty with this overlap in terminology if support for
> Format-1 or 2K-block Format-2 IDAs is ever added.  I don't think that
> this patch changes our ability to make that distinction.

I agree; and knowing that later patches will simplify things further, I
think it will even be easier to do than on the current code base.

> 
> Signed-off-by: Eric Farman <farman@linux.ibm.com>
> ---
>  drivers/s390/cio/vfio_ccw_cp.c | 26 +++++++++++---------------
>  1 file changed, 11 insertions(+), 15 deletions(-)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>

  reply index

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-06 20:28 [PATCH v2 0/9] s390: vfio-ccw code rework Eric Farman
2019-06-06 20:28 ` [PATCH v2 1/9] s390/cio: Squash cp_free() and cp_unpin_free() Eric Farman
2019-06-12 11:07   ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 2/9] s390/cio: Refactor the routine that handles TIC CCWs Eric Farman
2019-06-12 11:17   ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 3/9] s390/cio: Generalize the TIC handler Eric Farman
2019-06-12 11:18   ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 4/9] s390/cio: Use generalized CCW handler in cp_init() Eric Farman
2019-06-12 11:18   ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 5/9] vfio-ccw: Rearrange pfn_array and pfn_array_table arrays Eric Farman
2019-06-13 16:02   ` Cornelia Huck [this message]
2019-06-06 20:28 ` [PATCH v2 6/9] vfio-ccw: Adjust the first IDAW outside of the nested loops Eric Farman
2019-06-13 16:02   ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 7/9] vfio-ccw: Remove pfn_array_table Eric Farman
2019-06-13 16:03   ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 8/9] vfio-ccw: Rearrange IDAL allocation in direct CCW Eric Farman
2019-06-14  9:42   ` Cornelia Huck
2019-06-06 20:28 ` [PATCH v2 9/9] s390/cio: Combine direct and indirect CCW paths Eric Farman
2019-06-14 10:01   ` Cornelia Huck
2019-06-14 10:30     ` Eric Farman
2019-06-14 10:03 ` [PATCH v2 0/9] s390: vfio-ccw code rework Cornelia Huck
2019-06-17 13:32 ` Cornelia Huck

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190613180232.3cbea661.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=alifm@linux.ibm.com \
    --cc=farman@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=pasic@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

KVM Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/kvm/0 kvm/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 kvm kvm/ https://lore.kernel.org/kvm \
		kvm@vger.kernel.org kvm@archiver.kernel.org
	public-inbox-index kvm


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.kvm


AGPL code for this site: git clone https://public-inbox.org/ public-inbox